usort:我如何按多种数据类型排序?

时间:2011-10-17 13:23:40

标签: php usort

  

可能重复:
  Sort multidimensional array by multiple keys

我想知道如何通过不同的数据类型usort数组数组。例如,我有这些数据:

priority | title
2          B
3          C
2          A
1          A
3          D

我需要进行“双重排序”(如SQL priority ASC, title ASC)才能获得它:

priority | title
1          A
2          A      
2          B
3          C
3          D

真的,我需要用太多的价值来做,但我只需要基础。但是为了享受而不是冒险使用不同的逻辑,我真正的问题是如下组织:int priority ASC, string method ASC, string prefix ASC, int index ASC

我尝试过一些事情,但我不会做事。 :(

1 个答案:

答案 0 :(得分:2)

基于:PHP.net:multisort()

正如您在问题中所述,这只是如何完成的基础知识。为了使整个事物更加动态,你需要一种方法将排序选项传递给一个函数,然后在foreach中使用它们来控制使用哪些排序数组......

<?php
//Build example data
$data = array();
$data[] = array('priority'=>2,'title'=>'B');
$data[] = array('priority'=>3,'title'=>'C');
$data[] = array('priority'=>2,'title'=>'A');
$data[] = array('priority'=>1,'title'=>'A');
$data[] = array('priority'=>3,'title'=>'D');

foreach ($data as $key => $row) {
    $priority[$key]  = $row['priority'];
    $title[$key] = $row['title'];
}

array_multisort($priority, SORT_ASC, $title, SORT_ASC, $data);

print_r($data);
?>