php - unset an array with a specfic condition -


basically have array $code:

array (     [1] => array         (             [0] => france             [1] => 26422             [2] => 61748             [3] => 698477678         )      [2] => array         (             [0] => united states             [1] => 545             [2] => 2648             [3] => 55697455         )      [3] => array         (             [0] => canada             [1] => 502             [2] => 1636             [3] => 15100396         )     [4] => array         (             [0] => greece             [1] => 0             [2] => 45             [3] => 458         ) 

i want unset countries $code[$key][1] == 0 tired this:

$code = array_filter($code, function (array $element) { return !preg_match('(0)i', $element[1]); }); 

but returns countries unless 1 has in $code[$key][1] 0, this:

array (     [1] => array         (             [0] => france             [1] => 26422             [2] => 61748             [3] => 698477678         )      [2] => array         (             [0] => united states             [1] => 545             [2] => 2648             [3] => 55697455         ) 

any how can achieve this? thanks!

without regex:

$code = array_filter($code, function (array $element) { return ($element[1] !== 0); }); 

with regex (you need use anchors):

$code = array_filter($code, function (array $element) { return !preg_match('/^0$/', $element[1]); }); 

however, i’ll recommend simple foreach loop instead of array_filter:

foreach($code $key => $val){     if($val[1] === 0) unset($code[$key]); } 

Comments

Popular posts from this blog

windows - Single EXE to Install Python Standalone Executable for Easy Distribution -

c# - Access objects in UserControl from MainWindow in WPF -

javascript - How to name a jQuery function to make a browser's back button work? -