PHP foreach array получает первые 9 результатов, затем второй 9

Используя PHP foreach, как получить только первые 9 результатов в одном foreach и только во втором 9 в другом.

Что-то вроде

foreach {$ stores [1 – 9] как $ shop) {

foreach {$shops[10 - 18] as $shop) { 

Есть идеи?

дивный

Использовать array_slice() :

 foreach(array_slice($shops,0,9) as $shop){ // etc. } foreach(array_slice($shops,9,9) as $shop){ // etc. } 

Вместо этого используйте цикл for ?

 for (int $i = 0; $i < 9; $i++) { $shop = $shops[$i]; } 

Тогда вы можете сделать другое с $i = 10..19 . Если вы должны использовать foreach то есть счетчик, который вы увеличиваете и break; или используйте array_slice как предложили другие.

Как насчет

 foreach (array_slice($shops, 0, 9) as $shop) { ... } 

а также

 foreach (array_slice($shops, 9, 9) as $shop) { ... } 

??

 foreach (array_chunk($shops, 9) as $section) { // Do some logic on each section foreach ($section as $shop) { // Do some logic on each shop } } 

используя array_slice, вы можете разделить свой массив на два, тогда вы можете сделать это

 $my_array = array('1','2',...,'18'); $first_array = array_slice($my_array,0,9); $second_array = array_slice($my_array,9,18); 

Вместо этого используйте цикл for .

 for ($i = 0; $i < 9; $i++) { $shop = $shops[$i]; } for ($i = 9; $i < 18; $i++) { $shop = $shops[$i]; }