新聞中心
PHP二維數(shù)組排序

介紹
在PHP中,可以使用內(nèi)置的函數(shù)對二維數(shù)組進(jìn)行排序,下面將詳細(xì)介紹如何對PHP二維數(shù)組進(jìn)行排序。
按列排序
1、使用usort()函數(shù)按列排序
定義一個(gè)比較函數(shù),用于比較兩個(gè)元素的大小。
使用usort()函數(shù)對二維數(shù)組進(jìn)行排序。
示例代碼如下:
“`php
function compare($a, $b) {
return $a[‘column_name’] <=> $b[‘column_name’]; // column_name為要排序的列名
}
$array = array(
array(‘id’ => 1, ‘name’ => ‘John’, ‘age’ => 25),
array(‘id’ => 2, ‘name’ => ‘Alice’, ‘age’ => 30),
array(‘id’ => 3, ‘name’ => ‘Bob’, ‘age’ => 20)
);
usort($array, ‘compare’);
“`
運(yùn)行以上代碼后,$array將會按照’age’列的值進(jìn)行升序排序。
2、使用array_multisort()函數(shù)按多列排序
如果需要按照多個(gè)列進(jìn)行排序,可以使用array_multisort()函數(shù)。
示例代碼如下:
“`php
function compare($a, $b) {
return $a[‘column_name1’] <=> $b[‘column_name1’] || $a[‘column_name2’] <=> $b[‘column_name2’]; // column_name1和column_name2為要排序的列名
}
$array = array(
array(‘id’ => 1, ‘name’ => ‘John’, ‘age’ => 25),
array(‘id’ => 2, ‘name’ => ‘Alice’, ‘age’ => 30),
array(‘id’ => 3, ‘name’ => ‘Bob’, ‘age’ => 20)
);
array_multisort($array, SORT_ASC, array(‘column_name1’, ‘column_name2’)); // SORT_ASC表示升序排序,可以根據(jù)需要改為SORT_DESC表示降序排序
“`
運(yùn)行以上代碼后,$array將會先按照’column_name1’列的值進(jìn)行升序排序,然后按照’column_name2’列的值進(jìn)行升序排序。
按行排序
1、使用array_multisort()函數(shù)按行排序
如果需要按照行的值進(jìn)行排序,可以使用array_multisort()函數(shù)。
示例代碼如下:
“`php
function compare($a, $b) {
return $a[‘row_value’] <=> $b[‘row_value’]; // row_value為要排序的行值
}
$array = array(
array(‘id’ => 1, ‘name’ => ‘John’, ‘age’ => 25),
array(‘id’ => 2, ‘name’ => ‘Alice’, ‘age’ => 30),
array(‘id’ => 3, ‘name’ => ‘Bob’, ‘age’ => 20)
);
array_multisort($array, SORT_ASC, array(‘row_value’)); // SORT_ASC表示升序排序,可以根據(jù)需要改為SORT_DESC表示降序排序
“`
運(yùn)行以上代碼后,$array將會按照行的值進(jìn)行升序排序。
相關(guān)問題與解答
問題1:如何在PHP中對二維數(shù)組進(jìn)行降序排序?
答案:可以使用SORT_DESC常量替換SORT_ASC常量來實(shí)現(xiàn)降序排序,將SORT_ASC改為SORT_DESC即可。
問題2:如何對二維數(shù)組的某個(gè)子數(shù)組進(jìn)行排序?
答案:可以在比較函數(shù)中使用索引來指定要排序的子數(shù)組,如果要按照第一個(gè)子數(shù)組進(jìn)行排序,可以在比較函數(shù)中使用索引0來訪問該子數(shù)組。
當(dāng)前題目:php二維數(shù)組如何排序的
轉(zhuǎn)載來源:http://m.fisionsoft.com.cn/article/djjjcej.html


咨詢
建站咨詢
