带有foreach循环的array_slice函数

时间:2017-07-22 13:40:16

标签: php arrays

我有这个数组:

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循环处理它的问题。

2 个答案:

答案 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     
}