phparraysvalidationmultidimensional-array

Determine if any row of a 2d array has qualifying values in two columns


I'm trying to check value on my cart in my codeigniter project, i have this array:

$cart = Array
(
    [547650d3bfb9bce7ea6d61faf312fa41] => Array
        (
            [id] => 1502369193000
            [productid] => Product 1
            [qty] => 1
            [type] => sales
            [user_id] => admin
            [rowid] => 547650d3bfb9bce7ea6d61faf312fa41
        )

    [7473a2e4d2e4150c7de11d201538e179] => Array
        (
            [id] => 1502369241000
            [productid] => SG KENNA
            [qty] => 1
            [type] => purchase
            [user_id] => admin
            [rowid] => 7473a2e4d2e4150c7de11d201538e179
        )    
)

What i need just, check inside array user_id = 'admin' and type = 'sales' are exist.

This is what i try but with no success

$type = array_search('sales', array_column($cart, 'type'));
$user_id = array_search('admin', array_column($cart, 'user_id'));
if($type AND $user_id){
  echo "exist";
} else {
  echo "no exist";
}

Update: I use a loop like this and still no success

foreach ($cart as $item) {
      if ($item['type'] == "sales" AND $item['user_id'] == "admin") {
        echo "exist";
      } else {
        echo "no exist";
      }
    }

Solution

  • You should try something like this:

    foreach($cart as $row) {
        if(!empty($row) && !empty($row['type']) && !empty($row['user_id'])) {
            if ($row['type'] == 'sales' && $row['user_id'] == 'admin'){
                echo "exist";
                $found = true;
                break;
            }
        }
    } 
    if(!$found){
        echo "no exist";
    }