двойной foreach l oop не l oop в cakephp - PullRequest
0 голосов
/ 20 апреля 2020

В cakephp3.2 php> 5 я не могу получить двойной foreach l oop для правильной работы. Я прошел этот простой тест, чтобы доказать, что происходит. $ lesson - это многомерный массив, но я сосредоточусь только на 1 значении, которое он содержит. Он проходит только 1 итерацию. У меня есть массив с 3 значениями, как вы можете видеть. Этот двойной foreach l oop должен выдавать выходные данные 3X3, но он просто производит 4? Почему двойной foreach l oop не работает должным образом?

its a multi-dimensional array  and i am just using id fields. I want to remove duplicate names using a double foreach

lesson[1][id]='40650'
lesson[1][name]='fred'
lesson[1][name2]='smith'
lesson[2][id]='40651'
lesson[2][name]='fred'
lesson[2][name2]='smith'  
lesson[3][name]='40650'
lesson[3][id]='fred2'
lesson[3][name2]='smith'

  foreach ($lesson as $key1 =>$item){

             debug( $item['id']);

                foreach ($lesson as $key2 =>$item2){

                   debug( $item2['id']);


                }

           }

 \src\Controller\LessonsController.php (line 6429)

(int) 40650

\src\Controller\LessonsController.php (line 6433)

(int) 40650

\src\Controller\LessonsController.php (line 6433)

(int) 40651

\src\Controller\LessonsController.php (line 6433)

(int) 40652

1 Ответ

0 голосов
/ 20 апреля 2020

Ваш второй l oop проходит через тот же массив $lesson

Вам нужно изменить его, чтобы он проходил через результат первого l oop

foreach ($lesson as $key1 =>$item) {
   foreach ($item as $key2 => $item2) {
      // Do stuff
   }
}
...