平時簡單的一維數組或簡單的數組排序這裡就不多作介紹,這裡主要是針對平時做項目中的可能遇到的情況,根據多維數組中的其中一個排序。
用到的php函數是:array_multisort.
思路:取得其中你需要排序的字段,作為一維數組arr1,後邊會用來排序多維數組data.
這裡主要以二維數組為例,多維數組也是同樣的思路。
$data = array(
array('price' => '500', 'count' => '40', 'level' => '1'),
array('price' => '600', 'count' => '30', 'level' => '2'),
array('price' => '650', 'count' => '20', 'level' => '3'),
array('price' => '700', 'count' => '10', 'level' => '4'),
);
假設以價格來倒敘,我們就需要取得價格這個欄位的值,作為一個新的一維數組。
$arr1 = array_map(create_function('$n', 'return $n["price"];'), $data);
如果php版本大於5.5的話,可以直接用array_column 這個陣列操作方法直接取得某個字段,這裡也可以透過foreach來獲取,但是盡量用內建函數處理。
然後就用array_multisort處理,
array_multisort($arr1,SORT_DESC,$data );//多維數組的排序
我們可以印出$data最後的結果來看看結果:一看