Chinaunix首页 | 论坛 | 博客
  • 博客访问: 607089
  • 博文数量: 129
  • 博客积分: 8026
  • 博客等级: 中将
  • 技术积分: 1300
  • 用 户 组: 普通用户
  • 注册时间: 2006-02-21 14:39
文章分类

全部博文(129)

文章存档

2011年(1)

2007年(26)

2006年(102)

我的朋友

分类:

2006-08-01 17:40:49

如果数据来此非数据库渠道(如xml),却又需要按字段排序,可以用以下方法:
 
$user =array(
    array(
'name' => 'kitty','age'=> 25
),
    array(
'name' => 'carfield''age' => 27
),
    array(
'name' => 'benben''age' => 23
)
);
foreach(
$user as $re)    $sortData[] = $re['age']; 
//按age字段排,如果是按第一个字段排(这里是name),可以直接用sort或ksort
array_multisort($sortDataSORT_DESC$user); 
//要升序,将SORT_DESC改成SORT_ASC;
 
下面是多字段排序的方法,类似数据库的order by xx desc,yy asc
 
原数据:
$oldArr = array(
    array(
'age'=>23,'name'=>'apple','height'=>176
),
    array(
'age'=>22,'name'=>'boy','height'=>169
),
    array(
'age'=>25,'name'=>'cat','height'=>166
)
);

 


foreach ($oldArr as $key => $row
) {
  
$age[$key]  = $row['age'
];
  
$name[$key] = $row['name'
];
   $height[$key] = $row['height'];
}

array_multisort($age, SORT_DESC, $name, SORT_ASC, $height,SORT_ASC,$oldArr);//先按age,降序,再按name升,再按height升,如此类推
?>
阅读(1810) | 评论(1) | 转发(0) |
给主人留下些什么吧!~~