有人可以解释这个for循环背后的逻辑......我只是不知道它是如何进入下一个元素的,$from[$i]
,它在做什么?
$start = 2;
$path = array();
for (; $i != $start; $i = $from[$i])
$path[] = $i;
答案 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中的内容,以便进一步帮助您。