kristallУ тебя функция ошибку выдает, ты забыл замыкание ей передать:
function array_filter_recursive($myArray) {
foreach ($myArray as &$value){
if (is_array($value)) {
$value = array_filter_recursive($value);
}
}
return array_filter($myArray, function ($value) {
return $value === null || !empty($value);
});
}
KusssРешение на основе данных
Dezigo (+ несколько null'ов) и функции
kristall (с добавленным замыканием):
$array = array(
array(
'A' => 123,
'B' => ''
),
'',
45,
array(
'C' => array(
'D' => ''
)
),
null,
null
);
function array_filter_recursive($myArray) {
foreach ($myArray as &$value){
if (is_array($value)) {
$value = array_filter_recursive($value);
}
}
return array_filter($myArray, function ($value) {
return $value === null || !empty($value);
});
}
var_dump(array_filter_recursive($array));
Вывод:
array(4) {
[0] =>array(1) {
'A' =>int(123)
}
[2] =>int(45)
[4] =>NULL
[5] =>NULL
}
Можешь обвернуть в array_values(array_filter_recursive($array)) что бы обнулить ключи.
_____________
Мой блог