2017-04-21 77 views
1

我有一个这样的多维数组。通过多维数组循环并检查条件

[ 
    0 => array:3 [ 
    "volume" => 1272.0 
    "overflow" => 0 
    "deficit" => 0 
    ] 
    1 => array:3 [ 
    "volume" => 2352.0 
    "overflow" => 0 
    "deficit" => 0 
    ] 
    2 => array:3 [ 
    "volume" => 3144.0 
    "overflow" => 0 
    "deficit" => 0 
    ] 
    3 => array:3 [ 
    "volume" => 6048.0 
    "overflow" => 0 
    "deficit" => 0 
    ] 
    4 => array:3 [ 
    "volume" => 8952.0 
    "overflow" => 0 
    "deficit" => 0 
    ] 
] 

我有$ count变量,当嵌套数组中的overflow和deficit都为零时,它会增加。为此,我尝试以下循环。

$keys = array_keys($waterLevels); 
$count = 0; 
for ($i = 0; $i < count($waterLevels); $i++){ 
    foreach ($waterLevels[$keys[$i]] as $key => $value) 
    { 
     if (($key === 'overflow' and $value == 0) and ($key === 'deficit' and $value == 0)){ 
      $count = $count + 1; 
     } 
    } 
} 

如果我运行这个循环,我应该得到$ count值为5.我知道'if'条件有问题。如果我单独尝试“溢出”,它就会起作用。如果我添加下一个'和'条件,则不会。我在这里错过了什么逻辑?

回答

1

只有这种急需: -

$count = 0; 
foreach ($waterLevels as $value){ 
    if ($value['overflow'] == 0 && $value['deficit'] == 0){ 
     $count = $count + 1; 
    } 
} 
echo $count; 

输出: - https://eval.in/780558