在我的情况下,如何按给定键的值排序数组


How to sort the array by the value of given key in my case?

我需要根据给定键0的值对数组进行排序。

这是我的数组:

array(11) { 
[0]=> array(3) { 
 [0]=> string(3) "5" 
 [1]=> string(1) "3" 
 [2]=> string(2) "21" 
} 
[1]=> array(3) { 
 [0]=> string(3) "0.5" 
 [1]=> string(1) "3" 
 [2]=> string(3) "may" 
} 
[2]=> array(3) { 
 [0]=> string(3) "2.2" 
 [1]=> string(1) "3"
 [2]=> string(16) "sport" 
}  
} 

结果必须按键0的值排序:

    array(11) { 
[0]=> array(3) { 
 [0]=> string(3) "0.5" 
 [1]=> string(1) "3" 
 [2]=> string(2) "may" 
} 
[1]=> array(3) { 
 [0]=> string(3) "2.2" 
 [1]=> string(1) "3" 
 [2]=> string(3) "sport" 
} 
[2]=> array(3) { 
 [0]=> string(3) "5" 
 [1]=> string(1) "3"
 [2]=> string(16) "21" 
}  
}

我尝试使用以下代码:

function sort_by_second($i,$j){return $i[0]-$j[0];};
usort($mas,'sort_by_second'); 

我不明白为什么它不工作

尝试以下代码:

$array = array(
             array("5","3","21"),
             array("0.5","3","may"),
             array("2.2","3","sport"),
          );
//print_r($array);
function subval_sort($a,$subkey) {
    foreach($a as $k=>$v) {
        $b[$k] = strtolower($v[$subkey]);
    }
    asort($b);
    foreach($b as $key=>$val) {
        $c[] = $a[$key];
    }
    return $c;
}
$result = subval_sort($array, 0);
print_r($result);


结果:

Array
(
    [0] => Array
        (
            [0] => 0.5
            [1] => 3
            [2] => may
        )
    [1] => Array
        (
            [0] => 2.2
            [1] => 3
            [2] => sport
        )
    [2] => Array
        (
            [0] => 5
            [1] => 3
            [2] => 21
        )
)


演示:

http://3v4l.org/q4ZtL v430

PHP>= 5.5.0:

array_multisort(array_column($array, 0), SORT_ASC, $array);