I've been looking a lot of answers, but none of them are working for me.
This is the data assigned to my $quantities array:
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] => )
)
I'm looking for a way to remove the subarrays with empty values like [12] [1] and [2] while keeping everything else.
The desired result:
Array(
    [10] => Array([25.00] => 1)
    [9] => Array([30.00] => 3)
    [8] => Array([30.00] => 4)
)
I tried a lot of the functions on the official php docs and none of them worked.
I've used this one:
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;
}
But it only removes the element in the subarrays; I need the subarrays to be removed entirely.
I don't want this:
Array(
    [10] => Array([25.00] => 1)
    [9] => Array([30.00] => 3)
    [8] => Array([30.00] => 4)
    [12] => Array()
    [1] => Array()
    [2] => Array()
)
                Bit late, but may help someone looking for same answer. I used this very simple approach to;
$postArr = array_map('array_filter', $postArr);
$postArr = array_filter( $postArr );
                        If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With