有3个多维数组,我对其执行foreach
如何将foreach内部的多维响应从X项限制为20。
代码:
$i = 0;
foreach ($value->channel->item as $item)
{
$data['data'][$keySection]['item1'][$i]['url'] = $item->url;
$data['data'][$keySection]['item1'][$i]['title'] = $item->title;
$data['data'][$keySection]['item1'][$i]['img'] = $item->thumb;
$i++;
}
其中$value
包含在内
foreach ($homeData as $keySection => $valueSection)
{
foreach($valueSection as $key => $value)
{
switch ($key)
{
我试过在foreach ($value->channel->item as $item)
内部和外部应用一些for
,但我就是无法正常工作,我要么得到双倍的结果,要么根本无法工作。
我怎样才能做到这一点??
编辑:$i
与它无关…我需要限制$value->channel->item
,其中item
包含X个结果
第2版:$i
用于$homeData
,其中$homeData
包含三个值,每个值和其中一个值稍后将包含$value->channel->item
的三个不同值,因此如果项包含20个结果,则为3x20=60,$i用于分离每个20个结果。。。
第3版:好的,现在我明白了……很抱歉误解
启动foreach后,添加:
if($i > 19) {
break;
}
这将检查$i是否大于19(意味着20次迭代),然后中断foreach循环。有关break的更多信息,请点击此处。
你可以这样做:
$i = 0;
foreach ($value->channel->item as $item)
{
if($i > 19) {
break;
}
$data['data'][$keySection]['item1'][$i]['url'] = $item->url;
$data['data'][$keySection]['item1'][$i]['title'] = $item->title;
$data['data'][$keySection]['item1'][$i]['img'] = $item->thumb;
$i++;
}
这将给你20个项目。
希望这就是你想要的:)