首頁 > 後端開發 > php教程 > 如何在 PHP 中按多列對多維數組進行排序?

如何在 PHP 中按多列對多維數組進行排序?

Barbara Streisand
發布: 2024-12-17 14:07:10
原創
308 人瀏覽過

How Can I Sort a Multidimensional Array by Multiple Columns in PHP?

按多列對多維數組排序

按多列對多維數組進行排序可能是一項具有挑戰性的任務。然而,PHP 提供了一系列函數,使其相對簡單。

其中一個函數是 array_multisort()。此函數可讓您同時按多個條件對陣列進行排序。要使用 array_multisort(),您必須先建立一個排序列及其對應資料的陣列。

這裡是一個範例:

<?php
$mylist = array(
    array('ID' => 1, 'title' => 'Boring Meeting', 'date_start' => '2010-07-30', 'event_type' => 'meeting', 'state' => 'new-york'),
    array('ID' => 2, 'title' => 'Find My Stapler', 'date_start' => '2010-07-22', 'event_type' => 'meeting', 'state' => 'new-york'),
    array('ID' => 3, 'title' => 'Mario Party', 'date_start' => '2010-07-22', 'event_type' => 'party', 'state' => 'new-york'),
    array('ID' => 4, 'title' => 'Duct Tape Party', 'date_start' => '2010-07-28', 'event_type' => 'party', 'state' => 'california')
);

# get a list of sort columns and their data to pass to array_multisort
$sort = array();
foreach($mylist as $k => $v) {
    $sort['state'][$k] = $v['state'];
    $sort['event_type'][$k] = $v['event_type'];
    $sort['date_start'][$k] = $v['date_start'];
}

# sort by state asc, event_type desc, and date_start asc
array_multisort($sort['state'], SORT_ASC, $sort['event_type'], SORT_DESC, $sort['date_start'], SORT_ASC, $mylist);

print_r($mylist); // print the sorted array

?php>
登入後複製

從PHP 5.5.0 開始,您可以使用以下簡化語法:

<?php
array_multisort(array_column($mylist, 'state'), SORT_ASC,
                array_column($mylist, 'event_type'), SORT_DESC,
                array_column($mylist, 'date_start'), SORT_ASC,
                $mylist);
?php>
登入後複製

$mylist 陣列現在將按所需的指定欄位進行排序訂購。

以上是如何在 PHP 中按多列對多維數組進行排序?的詳細內容。更多資訊請關注PHP中文網其他相關文章!

來源:php.cn
本網站聲明
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn
作者最新文章
熱門教學
更多>
最新下載
更多>
網站特效
網站源碼
網站素材
前端模板