循环通过php数组

时间:2011-03-06 06:30:27

标签: php

有人可以解释这个for循环背后的逻辑......我只是不知道它是如何进入下一个元素的,$from[$i],它在做什么?

$start = 2;

$path = array();
for (; $i != $start; $i = $from[$i])
         $path[] = $i;

2 个答案:

答案 0 :(得分:3)

写得不是很清楚。我假设先前已初始化$i$start

基本上,没有for循环初始化。它一直持续到$i等于$start。在正文中,$i附加到$path数组。在进行下一次迭代之前,$i设置为$i$from键的值。

所以如果数组看起来像:

$from = array('foo'=>'bar', 'bar'=>'baz', 'baz'=>'goo');

$i $start分别是'foo'和'goo',$path将会结束:

array('foo', 'bar', 'baz')

如果$start无法访问,它将永远循环。

答案 1 :(得分:2)

我猜$ from是一个数组,它根据给定的$ i映射下一个$ i应该是什么。

因此,对于每次迭代,$ i被赋予$ from的索引​​$ i。

(例如,如果$ i为5且来自[5]的$为4,那么$ i的下一个值为4)

当它达到值$ start时停止。

需要更多地了解$ from中的内容,以便进一步帮助您。