這篇文章主要介紹“PHP的二維數(shù)組怎么進(jìn)行排序”,在日常操作中,相信很多人在PHP的二維數(shù)組怎么進(jìn)行排序問題上存在疑惑,小編查閱了各式資料,整理出簡單好用的操作方法,希望對大家解答”PHP的二維數(shù)組怎么進(jìn)行排序”的疑惑有所幫助!接下來,請跟著小編一起來學(xué)習(xí)吧!
成都創(chuàng)新互聯(lián)為您提適合企業(yè)的網(wǎng)站設(shè)計?讓您的網(wǎng)站在搜索引擎具有高度排名,讓您的網(wǎng)站具備超強的網(wǎng)絡(luò)競爭力!結(jié)合企業(yè)自身,進(jìn)行網(wǎng)站設(shè)計及把握,最后結(jié)合企業(yè)文化和具體宗旨等,才能創(chuàng)作出一份性化解決方案。從網(wǎng)站策劃到成都做網(wǎng)站、網(wǎng)站建設(shè), 我們的網(wǎng)頁設(shè)計師為您提供的解決方案。
之前我們了解了一維數(shù)組的幾種排序方法,知道PHP內(nèi)置了不少函數(shù)來實現(xiàn)一維數(shù)組的降序排序和升序排序。那么二維數(shù)組是否也內(nèi)置了函數(shù)來實現(xiàn)排序呢?
答案是:有的!PHP內(nèi)置了array_multisort()
函數(shù)可實現(xiàn)二維數(shù)組的排序。下面我們給大家介紹兩種利用array_multisort()函數(shù)對二維數(shù)組進(jìn)行排序的方法。
方法1:foreach循環(huán) + array_multisort()函數(shù)
<?php $data = array( array( 'id' => 5698, 'first_name' => 'Bill', 'last_name' => 'Gates', ), array( 'id' => 3809, 'first_name' => 'Mark', 'last_name' => 'Zuckerberg', ), array( 'id' => 4767, 'first_name' => 'Steve', 'last_name' => 'Aobs', ) ); // 取得列的列表 foreach ($data as $key => $row) { $ID[$key] = $row['id']; $FirstName[$key] = $row['first_name']; $LastName[$key] = $row['last_name']; } array_multisort($ID, SORT_ASC, $data); var_dump($data); ?>
分析一下代碼:
使用foreach循環(huán)將同一字段的數(shù)據(jù)放在一起,使用var_dump($ID)
、var_dump($FirstName)
、var_dump($LastName)
輸出各個字段數(shù)據(jù)試試:
使用array_multisort($ID, SORT_ASC, $data)
根據(jù)二維數(shù)組$data中 “id
”那一列字段進(jìn)行升序排序。
因此輸出結(jié)果:
而如果想要根據(jù)id降序排列,只要將該函數(shù)第二個參數(shù)設(shè)置為SORT_DESC
即可:
array_multisort($ID, SORT_DESC, $data);
輸出結(jié)果:
如果想要根據(jù)last_name進(jìn)行排序,只要將該函數(shù)第一個參數(shù)設(shè)置為$LastName數(shù)組即可
array_multisort($LastName, SORT_DESC, $data);
輸出結(jié)果:
下面我們來了解一下array_multisort()函數(shù):
array_multisort() 函數(shù)返回一個排序數(shù)組。用戶可以輸入一個或多個數(shù)組,該函數(shù)會先對第一個數(shù)組進(jìn)行排序,接著是其他數(shù)組,如果兩個或多個值相同,它將對下一個數(shù)組進(jìn)行排序。語法如下:
array_multisort(array1,sorting order,sorting type,array2,array3...)
方法2:array_column()函數(shù)+array_multisort()函數(shù)
在方法1中,我們是利用foreach循環(huán)來獲取同一字段的數(shù)據(jù),這有點復(fù)雜。其實,可以使用array_column()函數(shù)來實現(xiàn)這一操作。array_column()函數(shù)可以返回輸入數(shù)組中某個單一列的值。
<?php $data = array( array( 'id' => 5698, 'first_name' => 'Bill', 'last_name' => 'Gates', ), array( 'id' => 3809, 'first_name' => 'Mark', 'last_name' => 'Zuckerberg', ), array( 'id' => 4767, 'first_name' => 'Steve', 'last_name' => 'Aobs', ) ); //根據(jù)字段id對數(shù)組$data進(jìn)行升序排列 $key = array_column($data,'id'); array_multisort($key,SORT_ASC,$data); var_dump($data); ?>
輸出結(jié)果:
想要根據(jù)哪個字段來排序就將array_column($data,'id')
函數(shù)的第二個參數(shù)換成那個字段(鍵值)即可。例如想要根據(jù)字段“first_name”來降序排序,則可:
$key = array_column($data,'first_name'); array_multisort($key,SORT_DESC,$data);
輸出結(jié)果:
下面我們來了解一下array_column()函數(shù):
array_column() 返回輸入數(shù)組中某個單一列的值。語法格式為:
array_column(array,column_key,index_key);
返回值:返回一個數(shù)組,數(shù)組的值為輸入數(shù)組中某個單一列的值。
到此,關(guān)于“PHP的二維數(shù)組怎么進(jìn)行排序”的學(xué)習(xí)就結(jié)束了,希望能夠解決大家的疑惑。理論與實踐的搭配能更好的幫助大家學(xué)習(xí),快去試試吧!若想繼續(xù)學(xué)習(xí)更多相關(guān)知識,請繼續(xù)關(guān)注創(chuàng)新互聯(lián)網(wǎng)站,小編會繼續(xù)努力為大家?guī)砀鄬嵱玫奈恼拢?/p>
網(wǎng)站欄目:PHP的二維數(shù)組怎么進(jìn)行排序
文章網(wǎng)址:http://chinadenli.net/article10/joeido.html
成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供企業(yè)建站、ChatGPT、營銷型網(wǎng)站建設(shè)、App設(shè)計、自適應(yīng)網(wǎng)站、小程序開發(fā)
聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請盡快告知,我們將會在第一時間刪除。文章觀點不代表本網(wǎng)站立場,如需處理請聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時需注明來源: 創(chuàng)新互聯(lián)