PHP关联数组

时间:2009-07-01 07:22:16

标签: php arrays

我在PHP中有一个关联数组

$asd['a'] = 10;
$asd['b'] = 1;
$asd['c'] = 6;
$asd['d'] = 3;

我希望根据其值对其进行排序,并获得前4个值的键值。

我怎么能在php ???

中这样做

4 个答案:

答案 0 :(得分:7)

asort()应该保持索引关联:

asort($asd);

之后,一个简单的foreach可以获得接下来的四个值

$i = 0;
foreach ($asd as $key=>$value)
{
  if ($i >= 4) break;
  // do something with $asd[$key] or $value
  $i++;
}

答案 1 :(得分:5)

其他答案的替代方案。这个没有循环:

asort($asd);
$top_four_keys = array_slice(array_keys($asd), 0, 4);

答案 2 :(得分:2)

asort函数是您需要对其进行排序的。

要获取值,您可以使用以下代码:

$myKeys = array_keys(asort($asd));
$myNewItems = Array();
for ($i = 0; $i < 4; $i++)
    $myNewItems[$myKeys[$i]] = $asd[$myKeys[$i]];

将第一个毛皮项目放入$myNewItems,并使用正确的密钥和排序顺序。

答案 3 :(得分:0)

我想补充一下......

asort($asd,SORT_NUMERIC);
$top_four_keys=array_slice(array_keys($asd), 0, 4);

按降序排列:

arsort($fruits,_SORT_NUMERIC);
$top_four_keys=array_slice(array_keys($asd), 0, 4);

您可能需要使用SORT_NUMERIC参数, 如果您有意外的数组。