【问题标题】:Multidimensional array sort php多维数组排序php
【发布时间】:2016-05-10 11:57:10
【问题描述】:

我有以下数组。

$mem = array(
1 => array(
   0 => array(
     "start" => "2016-05-16 17:00:00",
     "end" => "2016-05-16 18:00:00"
   ),
   1 => array(
     "start" => "2016-05-16 16:10:00",
     "end" => "2016-05-16 16:40:00"
)));

我想按起始值排序,这样

1 => array(
  "start" => "2016-05-16 16:10:00",
  "end" => "2016-05-16 16:40:00"
)

将是数组的第一个元素。

我用 usort 试过了,但是没用。

【问题讨论】:

  • 展示你如何尝试使用 usort
  • 你检查过this 吗?

标签: php arrays multidimensional-array


【解决方案1】:

尝试以下方法:

function date_compare($a, $b)
{
    $t1 = strtotime($a['start']);
    $t2 = strtotime($b['start']);
    return $t1 - $t2;
}    
usort($mem[1], 'date_compare');

【讨论】:

    【解决方案2】:

    试试:

    usort($array[1], function($a, $b) {
    
        if ($a["start"] == $b["start"]) 
        {
           return 0;
        }
        return ($a["start"] < $b["start"]) ? -1 : 1;
    
    });
    

    【讨论】:

    • 这行得通,我必须像你一样使用密钥 - $array[1] 。这是我的问题。非常感谢
    • var_dump('2016-05-16 16:10:00' &lt; '2016-05-16 04:11:00 PM')
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2015-06-26
    • 1970-01-01
    • 1970-01-01
    • 2016-03-03
    相关资源
    最近更新 更多