array multisort 排序理解

2022-09-17 23:21:14 字數 1268 閱讀 5898

關鍵字: array_multisort php array sort

本例中 data 陣列中的每個單元表示乙個表中的一行。這是典型的資料庫記錄的資料集合。

例子中的資料如下:

volume | edition

-------+--------

67 |       2

86 |       4

86 |       3

資料全都存放在名為 data 的陣列中。這通常是通過迴圈從資料庫取得的結果,例如 mysql_fetch_assoc()。

<?php

$data = array('volume' => 67, 'edition' => 2);

$data = array('volume' => 86, 'edition' => 4);

$data = array('volume' => 86, 'edition' => 3);

?>

本例中將把 volume 降序排列,把 edition 公升序排列。

現在有了包含有行的陣列,但是 array_multisort() 需要乙個包含列的陣列,因此用以下**來取得列,然後排序。

<?php

// 取得列的列表

foreach ($data as $key => $row)

//首先$volume先降序排列,然後$edition進行對應的元素調整,

// $edition開始進行公升序排列,$data根據$volume和$edition

//中相應元素的對應關係,調整自己的內部元素的對應關係,然後

//進行排序。

//$volume中元素排序結果:

8686

67$edition進行元素調整:43

2$volume 和$edition對應關係:

86  --> 4

86  --> 3

67  --> 2

$edition進行排序:23

4$volume 和$edition對應關係:

67  --> 2

86  --> 3

86  --> 4

$data根據$volume 和$edition的元素對應關係,進行調整:

把$data的元素調整成$volume 和$edition的元素對應關係,

然後排序(其實這次排序是不需要的,但是又不能沒有)。

array_multisort($volume, sort_desc, $edition, sort_asc, $data);

?>

PHP陣列array multisort排序詳解

今天特意再看了下官網的介紹,對它的多個陣列的排序還是每台理解,找了些資料深入理解了下,在此總結下。php中array multisort函式對多個陣列或多維陣列進行排序,關聯 string 鍵名保持不變,但數字鍵名會被重新索引。輸入陣列被當成乙個表的列並以行來排序 這類似於 sql 的 order ...

array multisort 排序說明

第乙個引數是陣列,隨後的每乙個引數可能是陣列,也可能是下面的排序順序標誌 排序標誌用於更改預設的排列順序 之一 sort asc 預設,按公升序排列。a z sort desc 按降序排列。z a 隨後可以指定排序的型別 sort regular 預設。將每一項按常規順序排列。sort numeri...

陣列排序array multisort

array multisort 對多個陣列或者多維陣列進行排序 參考 secure.php.net 說明 bool array multisort array array1 mixed array1 sort order sort asc mixed array1 sort flags sort r...