php中关联数组的前两个元素

Gra*_*ier 2 php associative-array

我已经完成了最终目标,但也许有一种更优雅的方式来实现这一目标.

如果我有这样的数组:

$data = array(
    'wood' => 2,
    'metal' => 5,
    'plastic' => 3, 
);
Run Code Online (Sandbox Code Playgroud)

我想从$ data获得前2个键/值对(即金属:5和塑料:3).这是我想出的:

arsort($data);       //put values in order
reset($data);           //set pointer to first element
$first = each($data);    //assign first element to $first
array_shift($data); //remove first element from array
reset($data);           //set pointer to the new first element
$second = each($data); //assign the new first element to $second
Run Code Online (Sandbox Code Playgroud)

Mch*_*chl 8

为了获得关键和价值,我会这样:

arsort($data);
$result = array_slice($data,0,2);
Run Code Online (Sandbox Code Playgroud)