您的位置:首页 > 编程语言 > PHP开发

PHP 二维数组排序

2015-08-12 17:24 561 查看
二维数组 根据某个字段排序(降序)



$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 - 将每一项按字母顺序排列。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  二维数组 php