如何在php中限制一个关联数组?

时间:2013-03-07 03:15:57

标签: php arrays associative-array

我有一个关联数组,如关注

Array ( [1274] => 2 [2700] => 3 [2701] => 4 [2702] => 2 [2699] => 2 [2698] => 1 [2694] => 1......)

我想要的是从这个数组中取出前10个元素。我用array_slice。但是新阵列就像

Array ( [0] => 2 [1] => 3 [2] => 4 [3] => 2 [4] => 2 [5] => 1 [6] => 1.....)

它限制了数组,但数组键已被删除。 我怎样才能获得钥匙?谢谢你的建议。

3 个答案:

答案 0 :(得分:2)

嗯,你可以这样做:

$slice = array_intersect_key($whole,array_flip(array_slice(array_keys($whole),0,10)));

如果你想要更具可读性的东西,那就行了:

$keys = array_keys($whole);
$slice = Array();
$firstkeys = array_slice($keys,0,10);
foreach($firstkeys as $key) $slice[$key] = $whole[$key];

答案 1 :(得分:2)

您可以限制数组上的迭代并将其转换回数组:

$first = iterator_to_array(new LimitIterator(new ArrayIterator($array), 0, 10));

Demo

答案 2 :(得分:0)

试试这个:

$res    = array_chunk($array,10,true);

echo "<pre>";
print_r($res[0]);

如果你想知道第二组10 print_r($res[1]);