如何按内部数组键值排序数组?

时间:2013-05-28 08:28:35

标签: php

我有一个数组数组。我想通过他们的['date']字段来命令这些数组。所以最新的是索引[0]。我怎么能这样做?

以下是我的print_r

的示例
$array=    (
    [0] => Array
        (
            [date] => 01/05/2013 12:00
            [location] => Town Hall
            [minutes] => mydomain.com
            [agenda] => 
        ),
 [1] => Array
        (
            [date] => 09/05/2013 12:00
            [location] => Town Hall
            [minutes] => mydomain.com/walker
            [agenda] => 
        )

)

2 个答案:

答案 0 :(得分:1)

试试这个 -

$array = array(
    0 => array('date'=>'01/05/2013 12:00', 'location'=>'A'),
    1 => array('date'=>'09/05/2013 12:00', 'location'=>'B'),
    2 => array('date'=>'03/05/2013 12:00', 'location'=>'C'),
    3 => array('date'=>'02/05/2013 12:00', 'location'=>'D')
);

echo '<pre>';
print_r($array);
echo '</pre>';

function sorting($a, $b){
    $a = strtotime($a['date']);
    $b = strtotime($b['date']);

    if ($a == $b) {
        return 0;
    }
    return ($a < $b) ? -1 : 1;
}

usort($array, "sorting");

echo '<pre>';
print_r($array);
echo '</pre>';

查看实时演示 - http://codepad.org/biXJgHQA

答案 1 :(得分:0)

试试这个:

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

或者如果PHP&lt; 5.3

function my_sort($a,$b){
    return strcmp($a['date'],$b['date']);
}
usort($array,'my_sort');