Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/272.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Php usort:如何按多种数据类型排序?_Php_Usort - Fatal编程技术网

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

Php usort:如何按多种数据类型排序?,php,usort,Php,Usort,可能重复: 我想知道如何通过不同的数据类型对数组进行排序。例如,我有以下数据: priority | title 2 B 3 C 2 A 1 A 3 D 我需要进行“双重排序”(如SQLpriority ASC、title ASC)以获得: priority | title 1 A 2 A 2 B 3 C 3

可能重复:

我想知道如何通过不同的数据类型对数组进行排序。例如,我有以下数据:

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

我尝试过一些事情,但我做不到(

基于:

正如您在问题中所述,这只是如何实现的基础。为了使整个过程更加动态,您需要一种方法将排序选项传递到一个函数中,然后在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);
?>


请展示此示例数据如何与您的数据结构(数组数组)匹配。真的,@FelixKling它是重复的,它也解决了我的问题。谢谢。:)我更喜欢这个而不是usort。