PHP foreach数组获得前9个结果,然后第二个9


PHP foreach array get first 9 results then second 9

使用PHP foreach如何在一次foreach中只获得前9个结果,而在另一次foreach中只获得后9个结果?

比如

foreach {$ stores [1 - 9] as $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];
}
相关文章: