Я искал много ответов, но никто из них не работает для меня.Как удалить пустые значения из многомерного массива в PHP?
Это данные, назначенный на мой $quantities
массив:
Array(
[10] => Array([25.00] => 1)
[9] => Array([30.00] => 3)
[8] => Array([30.00] => 4)
[12] => Array([35.00] =>)
[1] => Array([30.00] =>)
[2] => Array([30.00] =>)
)
Я ищу способ, чтобы удалить подмассив с пустыми значениями, как [12]
[1]
и [2]
, сохраняя при этом всем остальном.
Желаемый результат:
Array(
[10] => Array([25.00] => 1)
[9] => Array([30.00] => 3)
[8] => Array([30.00] => 4)
)
Я пробовал много функций на официальном PHP документации и ни один из них не работал.
Я использовал это один:
function array_filter_recursive($array, $callback = null) {
foreach ($array as $key => & $value) {
if (is_array($value)) {
$value = array_filter_recursive($value, $callback);
} else {
if (! is_null($callback)) {
if (! $callback($value)) {
unset($array[$key]);
}
} else {
if (! (bool) $value) {
unset($array[$key]);
}
}
}
}
unset($value);
return $array;
}
Но это только удаляет элемент в подмассивах; Мне нужно, чтобы субмарины были полностью удалены.
Я не хочу, чтобы это:
Array(
[10] => Array([25.00] => 1)
[9] => Array([30.00] => 3)
[8] => Array([30.00] => 4)
[12] => Array()
[1] => Array()
[2] => Array()
)
Рассмотрите возможность использования var_dump(), чтобы показать нам содержимое массива. –
Для страницы, используемой в качестве места назначения для стольких ссылок на дублирование, эта страница имеет удивительное количество исправленных неверных ответов. @ Richard-MX Я опубликовал ответ, который не использует рекурсию или несколько функций итерации, так что читатели, которые становятся жертвами торговли, могут увидеть плохое рабочее (нулевое) решение. (непонятно в вашем сообщении, если ваши пустые массивы имеют пустые строки или «null» в качестве значений, поэтому я продемонстрировал их оба) – mickmackusa