PHP多维数组排序代码例

函数

<?php
function sortData($data, $col, $order){
if (count($data)) $temp_array[key($data)] = array_shift($data);

foreach($data as $key => $val){
$offset = 0;
$found = false;
foreach($temp_array as $tmp_key => $tmp_val){
if(!$found and strtolower($val[$col]) > strtolower($tmp_val[$col])){
$temp_array = array_merge((array)array_slice($temp_array,0,$offset),
array($key => $val),
array_slice($temp_array,$offset)
);
$found = true;
}
$offset++;
}
if(!$found) {
$temp_array = array_merge($temp_array, array($key => $val));
}
}
if (strtolower($order)=="asc"){
$array = array_reverse($temp_array);
} else {
$array = $temp_array;
}
return $array;
}


主函数

$data=array(
array(
'name'=>'Alice',
'key'=>'2fc4ab3d639e5400efdfc73bc27e83f1',
'age'=>20
),
array(
'name'=>'Claudia',
'key'=>'831c2b79c1f19af39c7e3321e11e5f5e',
'age'=>18
),
array(
'name'=>'Beatrice',
'key'=>'6f8512a2066b8f35a27a495ce1228c76',
'age'=>100
),
array(
'name'=>'Denise',
'age'=>25,
'key'=>'ef6de3b178bf9f69a9fef72e4ee7bbe9'
)
);

$arr1 = sortdata($data, "name","asc");
echo "<pre>";
var_dump($arr1);
echo "</pre>";

$arr2 = sortdata($data, "age","desc");
echo "<pre>";
var_dump($arr2);
echo "</pre>";
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值