在php

时间:2016-04-12 14:26:28

标签: php arrays sorting

我希望按每个元素的第二个值对数组进行排序。 像下面这个例子。价值未知。

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**
  }
} 

2 个答案:

答案 0 :(得分:1)

usort函数应该完成这项工作:

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

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

print_r($arr);

输出:

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

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

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

答案 1 :(得分:1)

这是一个灵感来自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);