对于普通数据排序我们直接使用系统自带数组排序函数即可,如果是关系数组排序你知道如何操作吧?下面来给各位整理了几个例子大家一起来看看吧。
参数说明:$data 目标数组 $key 排序字段, $sort 排序规则
代码如下 复制代码
function getsortarray($data,$key,$sort='asc')
{
if(!is_array($data))
{
return false;
}
$len = count($data);
for($k=1; $k {
for($j=$len-1,$i=0;$i {
if(strtoupper($sort) == 'desc')
{
$flag = $data[$j][$key]>$data[$j-1][$key];
}
else
{
$flag = $data[$j][$key] }
if($flag)
{
$tmp = $data[$j];
$data[$j] = $data[$j-1];
$data[$j-1] = $tmp;
}
}
}
return $data;
}
使用方法:
$a = array(
array('name'=>'stone','age'=>17,'sex'=>'男'),
array('name'=>'sunny','age'=>28),
array('name'=>'grass','age'=>16,'sex'=>'女'),
array('name'=>'sea','age'=>15,'birthday'=>'1987-08-16')
);
print_r(getsortarray($a,'age','desc'));
结果:
array
(
[0] => array
(
[name] => sunny
[age] => 28
)
[1] => array
(
[name] => stone
[age] => 17
[sex] => 男
)
[2] => array
(
[name] => grass
[age] => 16
[sex] => 女
)
[3] => array
(
[name] => sea
[age] => 15
[birthday] => 1987-08-16
)
)
不知道你有没有看懂呢?没懂我们再看两个数组排序例子
要对数组针对age字段进行排序,php自带的简单sort功能函数,显然都不能满足需求,因此需要自己写一个快速排序代码来实现相应的需求。
代码如下 复制代码
3
),
array(
'name' => 'wang',
'age' => 1
),
array(
'name' => 'chen',
'age' => 2
),
array(
'name' => 'zhengyi',
'age' => 4
),
array(
'name' => 'chai',
'age' => 14
)
);
$begin = gettime();
quicksort($array, 0, count($array) - 1, 'age');
print_r($array);
$end = gettime();
$spend = $end - $begin;
echo 花费时间为:.$spend.秒n;
function gettime()
{
list($msec, $sec) = explode( , microtime());
return (float)$msec + (float)$sec;
}