快速掌握PHP多維數組排序方法
我們在學習PHP時候,我們可能為PHP的多維數組排序的問題感到困惑,文章這里就詳細的給大家介紹一下PHP多維數組排序的原理。PHP也允許在多維數組上執行一些比較復雜的排序——例如,首先對一個嵌套數組使用一個普通的關鍵字進行排序,然后再根據另一個關鍵字進行排序。這與使用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()函數是PHP中最有用的函數之一,它有非常廣泛的應用范圍。另外,就如你在例子中所看到的,它能對多個不相關的數組進行排序,也可以使用其中的一個元素作為下次排序的基礎,還可以對數據庫結果集進行排序。這些例子應該讓你對PHP多維數組排序函數的使用有了初步的了解,也向你展示了一些隱藏在PHP數組處理工具包的內部功能。這里,我們在$data數組中模擬了一個行和列數組。然后,我使用array_multisort()函數對數據集合進行重排,首先是根據rating進行排序,然后,如果rating相等的話,再根據name排序。它的輸出結果如下:
- 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
- )
- )