| @@ 214-229 (lines=16) @@ | ||
| 211 | * @param array &$array |
|
| 212 | * @param int $level |
|
| 213 | */ |
|
| 214 | public static function array_repack(&$array, $level = 0) { |
|
| 215 | if (!is_array($array)) { |
|
| 216 | return; |
|
| 217 | } |
|
| 218 | ||
| 219 | foreach ($array as $key => &$value) { |
|
| 220 | if ($value === null) { |
|
| 221 | unset($array[$key]); |
|
| 222 | } elseif ($level > 0 && is_array($value)) { |
|
| 223 | static::array_repack($value, $level - 1); |
|
| 224 | if (empty($value)) { |
|
| 225 | unset($array[$key]); |
|
| 226 | } |
|
| 227 | } |
|
| 228 | } |
|
| 229 | } |
|
| 230 | ||
| 231 | ||
| 232 | /** |
|
| @@ 221-233 (lines=13) @@ | ||
| 218 | } |
|
| 219 | ||
| 220 | // Перепаковывает массив на заданную глубину, убирая поля с null |
|
| 221 | public static function array_repack(&$array, $level = 0) { |
|
| 222 | // TODO $lock_table не нужна тут |
|
| 223 | if(!is_array($array)) return; |
|
| 224 | ||
| 225 | foreach($array as $key => &$value) { |
|
| 226 | if($value === null) { |
|
| 227 | unset($array[$key]); |
|
| 228 | } elseif($level > 0 && is_array($value)) { |
|
| 229 | static::array_repack($value, $level - 1); |
|
| 230 | if(empty($value)) unset($array[$key]); |
|
| 231 | } |
|
| 232 | } |
|
| 233 | } |
|
| 234 | ||
| 235 | ||
| 236 | // TODO Вынести в отдельный объект |
|