Array Filtering

I need help filtering arrays. I have a form that provides the following data. I only want to select data with QTY 1 or more.

array (size=4)
  17 => 
    array (size=4)
      'id' => string '17' (length=2)
      'TicketName' => string 'General admission' (length=17)
      'price' => string '50.00' (length=5)
      'qty' => string '0' (length=1)
  18 => 
    array (size=4)
      'id' => string '18' (length=2)
      'TicketName' => string 'General admission' (length=17)
      'price' => string '50.00' (length=5)
      'qty' => string '2' (length=1)
  19 => 
    array (size=4)
      'id' => string '19' (length=2)
      'TicketName' => string 'General admission' (length=17)
      'price' => string '50.00' (length=5)
      'qty' => string '0' (length=1)
  20 => 
    array (size=4)
      'id' => string '20' (length=2)
      'TicketName' => string 'General admission' (length=17)
      'price' => string '50.00' (length=5)
      'qty' => string '0' (length=1)

I know I can use something. I am not sure how to filter the qty key.

$arrays = array_filter($inputs, function($val){
                return $val> 0;

            });

thank

+4
source share
2 answers

Each element of your array $inputis an array. Therefore, you need to access the value associated with the key qty:

$arrays = array_filter($inputs, function($elem){
    return (int)$elem['qty'] > 0;
});
+4
source
$array = array();    
foreach($main_array as $chunk){
  if($chunk['qty'] > 0 ){
    $array[] = $chunk;
  }
}
var_dump($array);
+1
source

All Articles