Filter multidimensional arrays

Array
(
    [user_mob_1] => Array
        (
            [mob_code] => 06
            [mob] => 069633345
            [type] => 1
            [phone_id] => 0
        )

    [user_mob_2] => Array
        (
            [mob_code] => 07
            [mob] => 07123456
            [type] => 1
            [phone_id] => 
        )

    [user_mob_6] => Array
        (
            [mob_code] => 0
            [mob] => 
            [type] => 1
            [phone_id] => 0
        )

)

The goal is to remove user_mob_ * where the crowd is empty!

Answer:

foreach($array as $key => $row) {
   if(empty($row['mob'])) unset($array[$key]);
}

Simple but I'm new to php, and at first I decided to use functions like array_filter etc.

Everything ingenious is simple.

+2
source share
1 answer

Your idea of ​​using a built-in function, such as array_filter, is very good; PHP has many things that can make your life easier.

In particular, it array_filteraccepts a callback that can be used to configure filtering logic. This will work:

$filtered = array_filter($array, function($el) { return !empty($el['mob']); });

Here the callback is provided as an anonymous function.

+23
source

All Articles