对于一个实例,你有一个数组:
$unsorted = array(
'desert' => array(
'time' => '1339902235',
'name' => 'desert.jpg'
),
'sea' => array(
'time' => '1339900801',
'name' => 'sea.jpg'
),
'mountain' => array(
'time' => '1339902285',
'name' => 'mountain.jpg'
),
);
是否可以按$unsorted[$a]['time']
?
答案 0 :(得分:5)
您可以使用usort
和strnatcasecmp
等内容。
例如:
function sort_2d_asc($array, $key) {
usort($array, function($a, $b) use ($key) {
return strnatcasecmp($a[$key], $b[$key]);
});
return $array;
}
function sort_2d_desc($array, $key) {
usort($array, function($a, $b) use ($key) {
return strnatcasecmp($b[$key], $a[$key]);
});
return $array;
}
$unsorted = array(
'desert' => array(
'time' => '1339902235',
'name' => 'desert.jpg'
),
'sea' => array(
'time' => '1339900801',
'name' => 'sea.jpg'
),
'mountain' => array(
'time' => '1339902285',
'name' => 'mountain.jpg'
),
);
$sorted = sort_2d_asc($unsorted, 'time');
答案 1 :(得分:0)
您可以使用usort
。 usort
将回调作为参数。同时将时间转换为整数,因为它们就是这样。
function compare($a,$b) {
if( $a['time'] == $b['time'] ) {
return 0;
}
return (intval($a['time']) < intval($b['time'])) ? -1 : 1;
}
usort( $unsorted, 'compare' );
// $unsorted is now sorted by time
答案 2 :(得分:0)
请注意,usort
不保留密钥
如果您需要原始密钥,请使用uasort
。