Skip to content

Commit 324ea2e

Browse files
0.4.1
* [+] Arr::groupDatasetByColumn() * [+] FS::checkPath()
1 parent 45d72e6 commit 324ea2e

File tree

2 files changed

+36
-0
lines changed

2 files changed

+36
-0
lines changed

sources/Helpers/Arr.php

Lines changed: 21 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -135,6 +135,27 @@ public static function searchCallback(array $input, callable $callback)
135135

136136
}
137137

138+
/**
139+
* Возвращает новый датасет, индекс для строк которого равен значению колонки строки
140+
* Предназначен для переформатирования PDO-ответов, полученных в режиме FETCH_ASSOC
141+
*
142+
* [ 0 => [ 'id' => 5, 'data' => 10], 1 => [ 'id' => 6, 'data' => 12] .. ]
143+
* При вызове с аргументами ($dataset, 'id') возвращает
144+
* [ 5 => [ 'id' => 5, 'data' => 10], 6 => [ 'id' => 6, 'data' => 12] .. ]
145+
*
146+
* @param $dataset
147+
* @param $column_id
148+
* @return array
149+
*/
150+
public static function groupDatasetByColumn($dataset, $column_id)
151+
{
152+
$result = [];
153+
array_map(function ($row) use (&$result, $column_id){
154+
$result[ $row[ $column_id ] ] = $row;
155+
}, $dataset);
156+
return $result;
157+
}
158+
138159

139160

140161
}

sources/Helpers/FS.php

Lines changed: 15 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -88,4 +88,19 @@ public static function read_all_files($root = '.')
8888
return $directory_content;
8989
}
9090

91+
/**
92+
*
93+
* @param $path
94+
* @return bool
95+
*/
96+
public static function checkPath($path)
97+
{
98+
if (!is_dir( $path ) && !mkdir( $path, 0777, true ) && !is_dir( $path )) {
99+
return false;
100+
//throw new \RuntimeException( sprintf( 'Directory "%s" was not created', $path ) );
101+
}
102+
103+
return true;
104+
}
105+
91106
}

0 commit comments

Comments
 (0)