索引未在php中的foreach循环内保持固定

时间:2018-11-07 13:52:11

标签: php foreach

对于我的家庭作业,我不得不使用“广度优先搜索”方法解决搜索问题,因此决定在PHP中执行此操作(不知道这是一个好主意还是不好的主意),现在问题已解决,并且我可以通过两种方式打印解决方案,但是从这两种方式中,其中一种表现很奇怪。

与我的问题有关的代码片段是这样的:

$jarSet = new JarSet();
$searchTree[] = $jarSet;
foreach ($searchTree as $index => &$jarSet){
//  echo '$index: '.$index.'<br>'; <--- Way#1: Works fine and shows correct indices
  $success = jarFilledOneExistsIn($jarSet); //<--- Check whether any of the jars contains 1 litre of water
  if(!$success){
    generateChildren($jarSet,$searchTree);
  } else {
//  echo '$index: '.$index.'<br>'; <--- Way#2: Shows indices different from the ones in Way#1
    print_solution($index,$jar_set_action_list);
  }
  if($index==10000) break; //<--- Keeps searching until index 10,000
}

我希望两个$index都打印相同的数字,但是它们是不同的,并且我已经检查了它们,事实证明,以第一种方式打印的数字是正确的答案。但是,为什么方法2确实给出了不同的结果?

0 个答案:

没有答案