二维数组 根据某个字段排序(降序)
①
$data =array(array('id'=>1,'name'=>'小明'),array('id'=>2,'name'=>'小红');
$datas = sort_arr($data,'id');
print_r($datas);
function sort_arr($arr,$val) {
$count = count($arr);
if($count <= 0)
{
return false;
}
for($i=0;$i<$count;$i++)
{
for($j=0;$j<$count-1;$j++)
{
if($arr[$j][$val] < $arr[$j+1][$val])
{
foreach ($arr[$j] as $key=>$temp)
{
$t=$arr[$j+1][$key];
$arr[$j+1][$key]=$arr[$j][$key];
$arr[$j][$key]=$t;
}
}
}
}
return $arr;
}
②
function my_sort($arrays,$sort_key,$sort_order=SORT_DESC,$sort_type=SORT_NUMERIC )
{
if(is_array($arrays))
{
foreach ($arrays as $array)
{
if(is_array($array))
{
$key_arrays[] = $array[$sort_key];
}else{
return false;
}
}
}
else{
return false;
}
array_multisort($key_arrays,$sort_order,$sort_type,$arrays);
return $arrays;
}
array_multisort() 函数对多个数组或多维数组进行排序。
参数中的数组被当成一个表的列并以行来进行排序 - 这类似 SQL 的 ORDER BY
子句的功能。第一个数组是要排序的主要数组。数组中的行(值)比较为相同的话,就会按照下一个输入数组中相应值的大小进行排序,依此类推。第一个参数是数组,随后的每一个参数可能是数组,也可能是下面的排序顺序标志(排序标志用于更改默认的排列顺序)之一: •SORT_ASC - 默认,按升序排列。(A-Z) •SORT_DESC - 按降序排列。(Z-A)
随后可以指定排序的类型:
•SORT_REGULAR - 默认。将每一项按常规顺序排列。
•SORT_NUMERIC - 将每一项按数字顺序排列。
•SORT_STRING - 将每一项按字母顺序排列。