快速掌握PHP多維數(shù)組排序方法
我們在學(xué)習(xí)PHP時候,我們可能為PHP的多維數(shù)組排序的問題感到困惑,文章這里就詳細的給大家介紹一下PHP多維數(shù)組排序的原理。PHP也允許在多維數(shù)組上執(zhí)行一些比較復(fù)雜的排序——例如,首先對一個嵌套數(shù)組使用一個普通的關(guān)鍵字進行排序,然后再根據(jù)另一個關(guān)鍵字進行排序。這與使用SQL的ORDER BY語句對多個字段進行排序非常相似。為了能更好的明白它是如何工作的,請仔細看所舉的例子:
- <?php $data = array(array("id" => 1, "name" => "Boney M", "rating" => 3),
- array("id" => 2, "name" => "Take That", "rating" => 1),
- array("id" => 3, "name" => "The Killers", "rating" => 4),
- array("id" => 4, "name" => "Lusain", "rating" => 3),
- ); foreach ($data as $key => $value) {
- $name[$key] = $value['name'];
- $rating[$key] = $value['rating'];
- }
- array_multisort($rating, $name, $data); print_r($data);?>
#T#array_multisort()函數(shù)是PHP中最有用的函數(shù)之一,它有非常廣泛的應(yīng)用范圍。另外,就如你在例子中所看到的,它能對多個不相關(guān)的數(shù)組進行排序,也可以使用其中的一個元素作為下次排序的基礎(chǔ),還可以對數(shù)據(jù)庫結(jié)果集進行排序。這些例子應(yīng)該讓你對PHP多維數(shù)組排序函數(shù)的使用有了初步的了解,也向你展示了一些隱藏在PHP數(shù)組處理工具包的內(nèi)部功能。這里,我們在$data數(shù)組中模擬了一個行和列數(shù)組。然后,我使用array_multisort()函數(shù)對數(shù)據(jù)集合進行重排,首先是根據(jù)rating進行排序,然后,如果rating相等的話,再根據(jù)name排序。它的輸出結(jié)果如下:
- Array ([0] => Array
- (
- [id] => 2
- [name] => Take That
- [rating] => 1
- ) [1] => Array
- (
- [id] => 1
- [name] => Boney M
- [rating] => 3
- )
- [2] => Array
- (
- [id] => 4
- [name] => Lusain
- [rating] => 3
- )
- [3] => Array
- (
- [id] => 3
- [name] => The Killers
- [rating] => 4
- )
- )