今天,大哥考我一个二维数据排序的题目,一个二维数组如下,要求按照年龄排序。
我一共写了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;