牛骨文教育服务平台(让学习变的简单)
博文笔记

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

创建时间:2016-06-21 投稿人: 浏览次数:195
<?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);
    }
?>
声明:该文观点仅代表作者本人,牛骨文系教育信息发布平台,牛骨文仅提供信息存储空间服务。