Foreach循环在执行之前查看整个循环

时间:2017-05-29 12:45:41

标签: php loops

我有这段代码:

foreach ($_SESSION['protiens']['thur'] as $key => $meal)
{
    if($_SESSION['protiens']['thur'][$key]['qty'] == 0)
        {
          echo " none";
        }

}

如果他们的数量是空的,可以隐藏天数,但是现在它需要最后选择的天气,如果我没有选择星期五的一餐,我选择了星期一和星期三,星期五不是显示,如果星期五有任何数量显示,无论什么时候被选中,我该怎么做呢? enter image description here

2 个答案:

答案 0 :(得分:1)

假设您的阵列部分如下:

$days = [
    'Mon' => ['qty' => 0],
    'Tue' => ['qty' => 0],
    'Wed' => ['qty' => 0],
    'Thu' => ['qty' => 1],
    'Fri' => ['qty' => 0],
    'Sat' => ['qty' => 0],
    'Sun' => ['qty' => 0],
];

您希望所有qty值的总和可以使用array_columnarray_sum的组合:

if (array_sum(array_column($days, 'qty'))) {
    // foreach display the items
} else {
    echo 'None';
}

或者像一个老式的柜台:

$mealCount = 0;
foreach ($days as $meal) {
    $mealCount += $meal['qty'];
}

if ($mealCount) {
    // foreach display the items
} else {
    echo 'None';
}

答案 1 :(得分:0)

如果我理解了问题,您希望在数量为零的情况下跳到下一个值。

foreach ($_SESSION['protiens']['thur'] as $key => $meal)
{
    if($meal['qty'] == 0)
        {
          continue;
        }

}