PHP foreach数组获得前9个结果,然后是第二个9
使用PHP foreach如何在一个foreach中只得到前9个结果,在另一个foreach中只得到第二个9 差不多 foreach{$shop[1-9]作为$shop{ 有什么想法吗 妙用PHP foreach数组获得前9个结果,然后是第二个9,php,arrays,foreach,Php,Arrays,Foreach,使用PHP foreach如何在一个foreach中只得到前9个结果,在另一个foreach中只得到第二个9 差不多 foreach{$shop[1-9]作为$shop{ 有什么想法吗 妙用 是否改为对循环使用 for (int $i = 0; $i < 9; $i++) { $shop = $shops[$i]; } for(int$i=0;$i
是否改为对循环使用
for (int $i = 0; $i < 9; $i++)
{
$shop = $shops[$i];
}
for(int$i=0;$i<9;$i++)
{
$shop=$shops[$i];
}
然后你可以用$i=10..19
做另一件事。如果你必须使用foreach
,那么你可以用一个计数器递增并break;
,或者像其他人建议的那样使用array\u 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];
}
($i=0;$i<9;$i++)的
{
$shop=$shops[$i];
}
对于($i=9;$i<18;$i++)
{
$shop=$shops[$i];
}
怎么样
foreach (array_slice($shops, 0, 9) as $shop) {
...
}
及
??数组\u slice
就是你想要的。@Robin Knight你可以稍微努力几分钟前你问了一个类似的问题,你可以得到更多选择不确定你是否需要这个,但你也应该知道,最好用限制和越界问题限制你的查询结果:你怎么能对长度未知的数组这样做?1,25,122,而不仅仅是18?你可以很容易地检查计数()获取数组的大小。但是,如果您试图将其划分为大小相等且模chunksize!=0的块,则必须有逻辑来处理大小不同的最后一个块。但是,编写的数组\u slice调用中没有任何内容会中断。在我上面的示例中,每个块最多返回9个项。这是answer比其他的要复杂得多。如果和数组中的值无关,这可能会起作用
for ($i = 0; $i < 9; $i++)
{
$shop = $shops[$i];
}
for ($i = 9; $i < 18; $i++)
{
$shop = $shops[$i];
}
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
}
}