2012-01-30 73 views
0

有3个多维数组,我向他们做了foreach我怎么能限制从X项目内的foreach多维响应可以说。限制多维数组响应

代码:

$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) 
     { 

我已经试过aplying一些for小号都内foreach ($value->channel->item as $item)的外面,但我不能让它正常工作,我得到了加倍的结果或根本不工作。

我该如何做这项工作?

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

EDIT2$i$homeData其中$homeData包含3个值和每其中一个稍后将包含3个不同的值$value->channel->item,因此如果项目包含20个结果,则将为3x20 = 60,并且$ i用于将每20个结果分开...

EDIT3: OK,现在我知道了......对不起,我误会

+0

你的意思是你需要执行直到$ i = 20? – Sabari 2012-01-30 12:22:44

+0

不,'$ i'与它无关... – Alex 2012-01-30 12:27:26

+0

那么你想要显示的只是20个项目。这就是我问 – Sabari 2012-01-30 12:29:03

回答

2

后启动的foreach,添加:

if($i > 19) { 
    break; 
} 

此检查$ i大于19(其意味着20次迭代),然后打破这个foreach循环。更多关于休息的信息,here

+0

不,'$ i'与你无关......检查编辑 – Alex 2012-01-30 12:28:02

+0

为什么不呢?每次插入一个项目到$ data时,您都会增加$ i,那么我们也可以使用该变量来检查您对该数组所做的插入数量。如果它与该数组无关,请使您的问题更清楚给我们。 – stefandoorn 2012-01-30 12:29:22

+0

'$ i'只能到3,它的目的是为了别的... – Alex 2012-01-30 12:30:36

0

你可以不喜欢它:

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

希望这是你想要的:)

+0

请检查我对@stefandoorn的评论。 .. – Alex 2012-01-30 12:31:36

+0

如果$ i只有3,那么你的循环将被执行4次。那么你怎么能得到20件物品。否则让问题更清楚 – Sabari 2012-01-30 12:35:46

+0

'$ i'走3次,0,1,2 – Alex 2012-01-30 12:37:29