Индекс не остается фиксированным внутри цикла foreach в переполнении стека

Для домашней работы мне нужно было решить проблему поиска, используя метод Breadth-First-Search, и я решил сделать это на 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

Решение

Задача ещё не решена.

Другие решения

Других решений пока нет …

По вопросам рекламы ammmcru@yandex.ru
Adblock
detector