Php 限制多维数组响应

Php 限制多维数组响应,php,for-loop,foreach,limit,Php,For Loop,Foreach,Limit,拥有3个多维数组,我对其执行foreach如何将foreach内部的多维响应从X项限制为20 代码: 其中,$value包含在 foreach ($homeData as $keySection => $valueSection) { foreach($valueSection as $key => $value) { switch ($key) { 我已经尝试将一些应用于foreach($value->channel->item a

拥有3个多维数组,我对其执行
foreach
如何将foreach内部的多维响应从X项限制为20

代码:

其中,
$value
包含在

foreach ($homeData as $keySection => $valueSection)
{
    foreach($valueSection as $key => $value)
    {
        switch ($key)
        {
我已经尝试将一些
应用于
foreach($value->channel->item as$item)
内部和外部的
s,但我就是无法让它正常工作,结果要么加倍,要么根本不工作

我怎样才能让它工作

编辑:
$i
与此无关。。。我需要限制
$value->channel->item
其中
item
包含X个结果

Edit2
$i
用于
$homeData
,其中
$homeData
包含三个值,每个值和其中一个值稍后将包含
$value->channel->item
的三个不同值,因此,如果item包含20个结果,将为3x20=60,$i用于分隔每20个结果

Edit3
好了,现在我明白了。。。很抱歉出现误解

启动foreach后,请添加:

if($i > 19) {
    break;
}
这将检查$i是否大于19(这意味着20次迭代),然后打破这个foreach循环。有关中断的更多信息。

您可以通过以下方式执行:

$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个项目


希望这就是你想要的:)

你的意思是你需要执行到$i=20吗?不,
$i
与此无关…所以你想要的是只显示20项是对的。这就是我问的,我的答案对你有好处。它将$item的处理限制为20次迭代。
$i
用于
$homeData
,其中homeData包含三个值,每个值以及其中一个值稍后将包含三个不同的值
$value->channel->item
为什么不?每次将项插入到$data时,您都会增加$i,因此我们还可以使用该变量检查您对该数组的插入量。。如果与此无关,请让我们更清楚地了解您的问题。我调整后的答案更有意义吗?@w0rldart如果对象
$value->channel->item
包含50个项目,则$i将达到49如果$i变为3,则您的循环将执行4次。那你怎么能买到20件呢。否则问题就更清楚了。我没抓住要点。你想在这里实现什么。如果我只去3美元,那么你怎么会有20个项目。你只有3个这和我做的一样。您使用了一个新变量$count有什么区别。我用了1美元。如果我只到3美元,怎么能数到12或20美元。。请理解PHP的基本概念first@MyHeadHurts我也不知道:(
$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++;
}