您当前的位置: > 技术探讨 >

数组排序【值排序,值相同键排序】

发布时间:2019-01-18 16:39编辑:admin阅读(

    <?php
     
     
    #要求:不使用PHP自带函数,自己编写一个函数,对该数组按值升序排序,值相同的按键升序排列
    function mutisort( $arr ){
     
        if(!is_array($arr)) {
            echo "输入的不是数组";
            return false;
        }
     
        if(count($arr) < 1) {
            echo "数组不能为空";
            return false;
        }
     
        while( count( $arr ) ){
            $max = 0;
            $max_key = '';
            foreach( $arr as $key => $value ){
                if( $max < $value ){
                    $max = $value;
                    $max_key = $key;
                }else if( $max == $value && $max_key > $key ){
                    $max = $value;
                    $max_key = $key;
                }
            }
     
            unset($arr[$max_key]);
            $arr_new[$max_key] = $max;
        }
        print_r($arr_new);
        exit;
     
    }
     
    $list = array(
        'a'=>123,
        'b'=> 234,
        'c' => 101,
        'd' => 123
    );
    echo '<pre/>';
    print_r( mutisort( $list ) );