无法从php中嵌套的foreach循环打印

时间:2016-01-29 16:09:01

标签: php arrays foreach

有四个数组和四个foreach循环。在其他两个foreach循环中有两个foreach,我想从嵌套的foreach循环中回显一个数组值。但我不知道为什么在我的浏览器中没有打印任何内容。

  $abc = array('arif'=>50, 'mofiz'=> 60, 'tofiz'=> 90);
  $def = array('arif'=>55, 'mofiz'=> 65, 'tofiz'=> 95);
  $ghi = array('arif'=>58, 'mofiz'=> 68, 'tofiz'=> 98);
  $jkl = array('arif'=>59, 'mofiz'=> 69, 'tofiz'=> 99);

  foreach ($abc as $ab):

      foreach ($def as $de):


          foreach ($ghi as $gh):
              /*** this echo prints nothing ***/
              echo $gh['arif'];
          endforeach;

          foreach ($jkl as $jk):
          endforeach;

      endforeach;

  endforeach;

1 个答案:

答案 0 :(得分:4)

$ghi = array('arif'=>58, 'mofiz'=> 68, 'tofiz'=> 98);

foreach ($ghi as $gh):
    echo $gh['arif'];
endforeach;

让我们看看如何评估:

  1. 迭代地将$ghi的每个元素放入gh变量。
  2. 第一次迭代$gh等于58
  3. 第二次迭代$gh等于68
  4. 第三次迭代$gh等于98
  5. $ghi中没有更多元素,已完成。
  6. 这就是它不打印任何内容的原因 - 因为$gh不是数组且没有arif键。

    我建议您详细了解how foreach loop works

    我还建议您阅读一些有关代码结构的书籍,尤其是Clean Code