今天,大哥考我一個二維數(shù)據(jù)排序的題目,一個二維數(shù)組如下,要求按照年齡排序。
我一共寫了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;