排序一维数组并保留键和值关系


Sort single dimensional array & keep keys & values relation

我有一个数组,keyvaluestring

 $myArr = array(
     'ball'=>'zebra', 
     'tree'=>'plant', 
     'zoo'=>'animal' );

我需要按其values sort array并保持keyvalue关联,因此输出会像

 $sortedArr = array(
     'zoo'=>'animal', 
     'tree'=>'plant', 
     'ball'=>'zebra' ); 

正在寻找最短,最智能的解决方案来实现这一目标,如果您有该解决方案,请与我分享。

看看 asort

$myArr = array('ball'=>'zebra', 'tree'=>'plant', 'zoo'=>'animal');
asort($myArr);
echo print_r($myArr, TRUE);

结果:

Array
(
    [zoo] => animal
    [tree] => plant
    [ball] => zebra
)

Ramesh,你也可以试试这个。

function csort($a, $b) {
if ($a == $b) {
    return 0;
}
return ($a < $b) ? -1 : 1;
}
$myArr = array('ball'=>'zebra', 'tree'=>'plant', 'zoo'=>'animal');
uasort($myArr, 'csort');
print_r($myArr);
exit;

您可以在此处列出的内置 php 函数上使用任何http://php.net/manual/en/array.sorting.php

按值排序并保持键关联

我找到了解决方案。

asort($myArr);