如何在PHP中对多维数组中的值进行排序和回显?

时间:2014-08-20 07:13:37

标签: php arrays function sorting multidimensional-array

如何按值"日期对此数组进行排序并让ASC结果显示? 糟糕的格式和命名是否导致我的作品出错,这使得[" date"]无法通过ASC格式显示在表格中。 谢谢大家的帮助。

数组:

$arrayBooking = array(
        "a01"=>array(
            "Amy"=>array(
                "booking1"=>array(
                    "231"=>array(
                        "date"=>"21/08/2014",
                        "period"=>array(
                            "from"=>1,
                            "to"=>3
                            )
                        )
                    )
                )
           ),
           "a02"=>array(
              "Peter"=>array(
                "booking1"=>array(
                    "231"=>array(
                        "date"=>"23/08/2014",
                        "period"=>array(
                            "from"=>2,
                            "to"=>3
                            )
                        )
                  ),
                 "booking2"=>array(
                    "231"=>array(
                        "date2"=>"20/08/2014",
                        "period"=>array(
                            "from"=>2,
                            "to"=>5
                            )
                        )
                    )
                )
            ),
            "a05"=>array(
               "Mary"=>array(
                  "booking1"=>array(
                     "321"=>array(
                        "date"=>"22/08/2014",
                            "period"=>array(
                                "from"=>3,
                                "to"=>6
                                )
                            )
                        )
                   )
              )
            )

1 个答案:

答案 0 :(得分:0)

您可以使用usort()函数按首选算法

对数组进行排序
usort($array, function($a, $b){
    if ($a < $b) {
       return -1;
    } elseif ($a == $b) {
       return 0;
    }
    return 1;
});

要比较日期,请使用this SO回答

$stamp1 = strtotime($date1);
$stamp2 = strtotime($date2);

return $stamp1 - $stamp2;