简体   繁体   English

在PHP中对数组未知值进行排序

[英]Sorting array unknown values in php

I'd like to sort an array by every elements second value. 我想按每个元素的第二个值对数组进行排序。 Like this example below. 像下面的例子。 The values are unknown. 值未知。

array(4) {
  [0]=>
  array(2) {
    [0]=>
    int(2)
    [1]=>
    int(1)                              **last in array**
  }
  [1]=>
  array(2) {
    [0]=>
    int(7)
    [1]=>
    int(4)                              **first in array**
  }
  [2]=>
  array(2) {
    [0]=>
    int(5)
    [1]=>
    int(2)                              **Second in array**
  }
} 

usort function should do the job: usort函数应该可以完成以下工作:

$arr = [
    [2, 1],
    [7, 4],
    [5, 2],
];

usort($arr, function($a, $b){
   return $a[1] - $b[1];
});

print_r($arr);

The output: 输出:

Array
(
    [0] => Array
        (
            [0] => 2
            [1] => 1
        )

    [1] => Array
        (
            [0] => 5
            [1] => 2
        )

    [2] => Array
        (
            [0] => 7
            [1] => 4
        )
)

Here is a solution inspired from here 这是从这里得到启发的解决方案

$input = array(array(2,1),array(7,4),array(5,2));
function method1($a,$b) 
{
   return ($a[1] <= $b[1]) ? 1 : -1;
}
usort($input, "method1");
print_r($input);

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM