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

2019-08-12  本文已影响0人  chinariver

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

我一共写了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;

上一篇 下一篇

猜你喜欢

热点阅读