您的位置:首页 > 其它

一个数组先按值排序,如果它的值有相同,就再按键排序

2016-06-21 16:34 435 查看
<?php
//排序
function mulsort($arr) {
if(!is_array($arr)) {
echo "输入的不是数组";
return false;
}

if(count($arr) < 1) {
echo "数组不能为空";
return false;
}

//获取所有的键
$keys = array_keys($arr);
//获取所有的值
$vals = array_values($arr);
//先对值排序,值相同时再对键排序
array_multisort($vals, $keys);
//将排序后的键和值重新组合成数组
$arr = array_combine($keys, $vals);

return $arr;
}

$arr = array("d"=>100, "b"=>23, "c"=>22, "f"=>22, "e"=>22);
echo "排序前的数组<br>";
print_r($arr);
echo "<br>";

$result = mulsort($arr);
if($result) {
echo "排序后的数组<br>";
print_r($result);
}
?>
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: