使用PHP foreach如何只在一个foreach中获得前9个结果,在另一个foreach中仅获得第二个9个结果。
像
这样的东西foreach {$ shops [1 - 9] as $ shop){
foreach {$shops[10 - 18] as
$shop) {
有什么想法吗?
非凡
答案 0 :(得分:9)
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];
}