限制多维数组响应


Limit a multidimensional array response

有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个项目。

希望这就是你想要的:)