Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

Remove rows from 2d array where column value is empty [duplicate]

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 mob is empty !

The answer is:

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

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

All ingenious is simple.

like image 496
Alexei T Avatar asked Mar 17 '26 14:03

Alexei T


1 Answers

Your idea of using a built-in function like array_filter is a very good one; PHP has lots of these that can make your life easier.

Specifically, array_filter accepts a callback that you can use to customize the filtering logic. This would work:

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

Here the callback is supplied as an anonymous function.

like image 97
Jon Avatar answered Mar 20 '26 07:03

Jon



Donate For Us

If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!