php二维数组按照某个键名排序

今天,大哥考我一个二维数据排序的题目,一个二维数组如下,要求按照年龄排序。

我一共写了3中方法,供大家参考。

$array =[

    ['name'=>'张三','age'=>29,'id'=>1],

    ['name'=>'李四','age'=>36,'id'=>2],

    ['name'=>'王五','age'=>18,'id'=>3],

    ['name'=>'赵柳','age'=>18,'id'=>4],

    ['name'=>'汪涵','age'=>30,'id'=>5],

    ['name'=>'刘德华','age'=>30,'id'=>6],

];

function sort1($array)

{

    /**

    * 在这里写

    */

    $array_key = array_column($array,'age');

    array_multisort($array_key,$array);

    echo 'sort1';

    return $array;

}

function sort2($array){

    $age=[];

    foreach ($array as $k=>$v){

        $age[$k] = $v['age'];

    }

    asort($age);

    $result =[];

    foreach ($age as $key=>$value){

        $result[]=$array[$key];

    }

    echo "sort 2";

    return $result;

}

function sort3($array){

    $age=[];

    foreach ($array as $k=>$v){

        $age[$k] = $v['age'];

    }

    sort($age);

    $result =[];

    foreach ($age as $key1=>$value1){

        foreach ($array as $k1=>$v1){

            if($value1==$v1['age']){

                $result[$k1]=$v1;

            }

        }

    }

    echo 'sort3';

    return $result;

}

$array = sort3($array);

echo "<pre>";

print_r($array);

die;

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。