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

时间:2011-07-14 14:01:22

标签: php arrays foreach

使用PHP foreach如何只在一个foreach中获得前9个结果,在另一个foreach中仅获得第二个9个结果。

这样的东西
  

foreach {$ shops [1 - 9] as $ shop){

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

有什么想法吗?

非凡

6 个答案:

答案 0 :(得分:9)

使用array_slice():

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

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

答案 1 :(得分:3)

改为使用for循环?

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

然后你可以用$i = 10..19做另一个。如果您必须使用foreach,那么您可以增加一个计数器break;或使用其他人建议的array_slice

答案 2 :(得分:1)

怎么样

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

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

...

答案 3 :(得分:1)

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

答案 4 :(得分:0)

使用array_slice您可以将数组拆分为两个,然后就可以执行此操作

$my_array = array('1','2',...,'18');

$first_array = array_slice($my_array,0,9);
$second_array = array_slice($my_array,9,18);

答案 5 :(得分:0)

改为使用for循环。

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

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