我有这个数组:
foreach ($r['result']['mounts']['collected'] as $item) echo '
<li class="span3 clearfix" data-tag=', $item['qualityId'], '>
<a
href="//de.wowhead.com/item=', $item['itemId'], '"
class="', $item['qualityId'], '"
>
<img
src="http://wow.zamimg.com/images/wow/icons/large/', $item['icon'], '.jpg"
alt="', htmlspecialchars($item['name']), '"
>
</li>';
echo '
数组很大,有500多个(数字)键。我只是希望前50个键被加载。 是否可以使用array_slice()函数?但这是我不知道用foreach循环处理它的问题。
答案 0 :(得分:0)
由于你的问题不够明确,你的result
数组很大或者它的任何子数组,此时我认为不需要foreach
循环。
如果您的$result
数组很大,您可以像这样切片:
$firstFiftyItems = array_slice($result, 0, 50);
我会在你评论后立即更新这个答案。
答案 1 :(得分:0)
这是array_slice()的link。
您可以尝试这样的事情(只需添加提示.. :))
//lets say this is your collection
$arr = ["a"=>"a","b"=>"b","c"=>"c","d"=>"d","e"=>"e","f"=>"f","g"=>"g"];
// set counter you want to iterate over.
$j =0;
$step = 3; // set the step value (in your case it will 50.)
for($i = 0 ;$i<3;$i++)
{
$b = array_slice($arr,$j,$step);
$j = $j+$step; // increment counter by to step position.
print_r($b); // this is the collection you want. save it or use directly
}