Как удалить пустые значения из многомерного массива в PHP?

I искал много ответов, но ни один из них не работает для меня.

Это данные, назначенные моему массиву $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()
)
9
задан mickmackusa 16 October 2017 в 23:00
поделиться