Php 限制多维数组响应
拥有3个多维数组,我对其执行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
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++;
}