对嵌套数组进行排序[重复]

问题描述 投票:-3回答:2

这个问题在这里已有答案:

我有这样一个数组:

[ ["5", "France", "Paris", "..."], ["7", "UK", "London"], ["1", "..."], ["8", "..."] ]

现在我需要对这个数组进行排序,以便各个条目按顺序排列如下:

[ ["1", "..."], ["5", "France",  "Paris"], ["7", "UK", "London"], ["8", "..."] ]

我将如何在PHP中进行此操作?

@YourCommonSense所指的另一个答案是Java,而不是PHP

php arrays
2个回答
0
投票

您不需要jQuery在Javascript中执行此操作

var arr = [ ["5", "France", "Paris", "..."], ["7", "UK", "London"], ["1", "..."], ["8", "..."] ]
console.log(arr);
arr.sort((el1,el2) => {
    return el1[0] - el2[0];
});

// Non-ES6 equivalent
arr.sort(function(el1,el2) {
    return el1[0] - el2[0];
});

console.log(arr);

输出:

[["5", "France", "Paris", "..."], ["7", "UK", "London"], …]
[["1", "..."], ["5", "France", "Paris", "..."], ["7", …], …]

0
投票

面向PHP的一个解决方案

usort($array, function($a, $b){
    return strcmp($a[0], $b[0]);
});
print_r($array);

结果

数组([0] =>数组([0] => 1 [1] => ...)

[1] => Array
    (
        [0] => 5
        [1] => France
        [2] => Paris
        [3] => ...
    )

[2] => Array
    (
        [0] => 7
        [1] => UK
        [2] => London
    )

[3] => Array
    (
        [0] => 8
        [1] => ...
    ) )
© www.soinside.com 2019 - 2024. All rights reserved.