簡體   English   中英

使用array_multisort按日期排列數組

[英]Use array_multisort to arrange arrays by date

我建立了一組數組,我試圖使用array_multisort按“開始”日期(HH:mm)進行排序。 該數組如下所示:

Array
(
    [start] => 13:00
    [end] => 14:00
    [title] => An event
    [day] => Monday
)
Array
(
    [start] => 00:00
    [end] => 06:00
    [title] => An event
    [day] => Monday
)
Array
(
    [start] => 06:00
    [end] => 13:00
    [title] => An event
    [day] => Monday
)

我想通過“開始”命令這些命令,因此它們應如下所示:

Array
(
    [start] => 00:00
    [end] => 06:00
    [title] => An event
    [day] => Monday
)
Array
(
    [start] => 06:00
    [end] => 13:00
    [title] => An event
    [day] => Monday
)
Array
(
    [start] => 13:00
    [end] => 14:00
    [title] => An event
    [day] => Monday
)

我正在嘗試使用array_multisort。 下面是我的完整代碼。 我已經將'array_multisort'應用於$ monday,但是被忽略了。 知道我在做什么錯嗎?

foreach ($rows as $row) {
     if ($row['day'] == 'Monday') {
          $monday = array 
               (
        'start' => $row['start_time'],
        'end' => $row['end_time'],
        'title' => get_the_title(),
        'day' => $row['day'],
        );

     }
}

array_multisort($monday, SORT_ASC);     
print_r($monday);

嘗試這個

function my_cmp($a, $b) {
    return strcmp($a["start"], $b["start"]);
}

usort($monday, "my_cmp");

編輯

你應該說你想要什么...

這可以使你除了

$mondays = array();
foreach ($rows as $row) {
    foreach ($row as $day) {
        if ($row['day'] == 'Monday') {
          $mondays[] = array(
                'start' => $row['start_time'],
                'end' => $row['end_time'],
                'title' => get_the_title(),
                'day' => $row['day'],
          );

        }
     }
}

function cmp($a, $b) {
    return strcmp($a["start"], $b["start"]);
}

usort($mondays, "cmp");

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM