摘要:文章轉(zhuǎn)載自有時候我們需要對二維數(shù)組的某個鍵的值進(jìn)行排序,這里就是討論這個問題。第一個數(shù)組是要排序的主要數(shù)組。將每一項按常規(guī)順序排列。規(guī)定輸入的數(shù)組。可以在每個數(shù)組后設(shè)置排序順序和排序類型。
文章轉(zhuǎn)載自:http://www.nowamagic.net/libr...
有時候我們需要對二維數(shù)組的某個鍵的值進(jìn)行排序,這里就是討論這個問題。我們可以使用array_multisort()這個函數(shù)。array_multisort() 函數(shù)對多個數(shù)組或多維數(shù)組進(jìn)行排序。
參數(shù)中的數(shù)組被當(dāng)成一個表的列并以行來進(jìn)行排序 - 這類似 SQL 的 ORDER BY 子句的功能。第一個數(shù)組是要排序的主要數(shù)組。數(shù)組中的行(值)比較為相同的話,就會按照下一個輸入數(shù)組中相應(yīng)值的大小進(jìn)行排序,依此類推。
第一個參數(shù)是數(shù)組,隨后的每一個參數(shù)可能是數(shù)組,也可能是下面的排序順序標(biāo)志(排序標(biāo)志用于更改默認(rèn)的排列順序)之一:
SORT_ASC - 默認(rèn),按升序排列。(A-Z)
SORT_DESC - 按降序排列。(Z-A)
隨后可以指定排序的類型:
SORT_REGULAR - 默認(rèn)。將每一項按常規(guī)順序排列。
SORT_NUMERIC - 將每一項按數(shù)字順序排列。
SORT_STRING - 將每一項按字母順序排列。
語法:array_multisort(array1,sorting order,sorting type,array2,array3...)
array1:必需。規(guī)定輸入的數(shù)組。
sorting order:可選。規(guī)定排列順序。可能的值是 SORT_ASC 和 SORT_DESC。
sorting type:可選。規(guī)定排序類型。可能的值是SORT_REGULAR、SORT_NUMERIC和SORT_STRING。
array2:可選。規(guī)定輸入的數(shù)組。
array3:可選。規(guī)定輸入的數(shù)組。
字符串鍵名將被保留,但是數(shù)字鍵將被重新索引,從 0 開始,并以 1 遞增。可以在每個數(shù)組后設(shè)置排序順序和排序類型。如果沒有設(shè)置,每個數(shù)組參數(shù)會使用默認(rèn)值。
下面是一個例子:
"; for($i=0; $i<=5; $i++) { $arr[$i]["val"] = mt_rand(1, 100); $arr[$i]["num"] = mt_rand(1, 100); } echo ""; print_r($arr); echo ""; echo "從二維數(shù)組中抽出鍵為val,多帶帶成另一個數(shù)組:"."
"; foreach ($arr as $key => $row) { $vals[$key] = $row["val"]; $nums[$key] = $row["num"]; } echo ""; print_r($vals); echo ""; echo "對其進(jìn)行排序:"."
"; array_multisort($vals, SORT_ASC, $arr); echo ""; print_r($vals); echo ""; ?>
運行結(jié)果:
二維數(shù)組如下: Array ( [0] => Array ( [val] => 46 [num] => 49 ) [1] => Array ( [val] => 8 [num] => 24 ) [2] => Array ( [val] => 37 [num] => 3 ) [3] => Array ( [val] => 32 [num] => 35 ) [4] => Array ( [val] => 19 [num] => 38 ) [5] => Array ( [val] => 30 [num] => 37 ) ) 從二維數(shù)組中抽出鍵為val,多帶帶成另一個數(shù)組: Array ( [0] => 46 [1] => 8 [2] => 37 [3] => 32 [4] => 19 [5] => 30 ) 對其進(jìn)行排序: Array ( [0] => 8 [1] => 19 [2] => 30 [3] => 32 [4] => 37 [5] => 46 )
我們將得到一個按val升序排序的二維數(shù)組。
文章版權(quán)歸作者所有,未經(jīng)允許請勿轉(zhuǎn)載,若此文章存在違規(guī)行為,您可以聯(lián)系管理員刪除。
轉(zhuǎn)載請注明本文地址:http://specialneedsforspecialkids.com/yun/22200.html
摘要:前提給定一個二維數(shù)組,請根據(jù)指定的數(shù)組寫出最優(yōu)的排序。排序條件,指定數(shù)組如下估計大家都沒有什么問題,排序嘛,簡單的不要不要的方式一這應(yīng)該是最簡單的方式了,直接使用現(xiàn)成的函數(shù),快捷的不要不要的。 前提 給定一個二維數(shù)組,請根據(jù)指定的數(shù)組key,寫出最優(yōu)的排序。排序條件age asc,sex desc,指定數(shù)組如下: $arr = [ [id=>1, age=>1,...
摘要:數(shù)組的排序,如果是一維的,那肯定相信大家都沒問題。但是如果數(shù)組是二維的呢其實問題也不大畢竟大法好但是我想給大家介紹的是自己內(nèi)置的一個函數(shù)就是他下面,請看一個例子某一個需要排序的神秘排序具體實現(xiàn)排序過程,還請小伙伴們自行腦補 數(shù)組的排序,如果是一維的,那肯定相信大家都沒問題。但是如果數(shù)組是二維的呢?其實問題也不大 showImg(https://segmentfault.com/img/...
摘要:函數(shù)之說明函數(shù)返回排序數(shù)組。把每一項按常規(guī)順序排列,不改變類型。把每一項作為字符串來處理,基于當(dāng)前區(qū)域設(shè)置可通過進(jìn)行更改。示例一維多個數(shù)組排序結(jié)果相同時,排序在的前面多維數(shù)組排序結(jié)果 PHP函數(shù)之a(chǎn)rray_multisort() array_multisort() 說明: array_multisort() 函數(shù)返回排序數(shù)組。您可以輸入一個或多個數(shù)組。函數(shù)先對第一個數(shù)組進(jìn)行排序,接...
摘要:下列的所有排序函數(shù)都是直接作用于數(shù)組本身,而不是返回一個新的有序的數(shù)組。倒序并保持索引關(guān)系,按鍵名排序按鍵名倒序使用用戶自定義的比較函數(shù)對數(shù)組中的值進(jìn)行排序,要排序的數(shù)組需要用一種不尋常的標(biāo)準(zhǔn)進(jìn)行排序,那么應(yīng)該使用此函數(shù)。 數(shù)組排序,共13個 函數(shù)中有u的,能自定義比較函數(shù);有k的,按照鍵來排序;有r(reverse)的,倒序;有a(association)的,一定是鍵值關(guān)聯(lián),除了r...
摘要:一開始遇到這個函數(shù)時,看手冊怎么就是看不懂,很不理解。后來在網(wǎng)上看了很多的例子才慢慢理解一點。現(xiàn)在記下來,留著用。然后如語句一樣排序即可 一開始遇到array_multisort 這個函數(shù)時,看手冊 怎么就是看不懂,很不理解。后來在網(wǎng)上看了很多的例子 才慢慢理解一點。現(xiàn)在記下來,留著用。 一,一維數(shù)組排序 $a=array(Dog,Cat,Horse,Bear,Zebra); arra...
閱讀 2208·2021-11-22 15:29
閱讀 4098·2021-11-04 16:13
閱讀 991·2019-08-29 16:58
閱讀 338·2019-08-29 16:08
閱讀 1455·2019-08-23 17:56
閱讀 2378·2019-08-23 17:06
閱讀 3165·2019-08-23 16:55
閱讀 2058·2019-08-23 16:22