經常會面臨這樣的需求,雖然有時候我們可以在資料庫查詢的時候,直接對資料進行排序,但還是無法滿足日益複雜的業務需求。這裡邊會用到兩個函數一個是array_column()函數,這個函數接受三個參數。詳情參見這裡是從二維數組中抽出一個鍵的值,作為一個新的數組返回。
另一個是array_multisort()函數,這個函數是一個排序函數,詳情參見這裡
它會依照第一個參數數組的定序,依照第一個參數數組的值在第三個參數重的位置對第三個參數進行排序。
聽不明白吧?聽不明白就對了,還是直接看代碼來的實在:
$orgin = array( array( 'id' => 5698, 'first_name' => 'Bill', 'last_name' => 'Gates', ), array( 'id' => 4767, 'first_name' => 'Steve', 'last_name' => 'Jobs', ), array( 'id' => 3809, 'first_name' => 'Mark', 'last_name' => 'Zuckerberg', ));$idArr = array_column($orgin, 'id');array_multisort($idArr,SORT_ASC,$orgin);var_dump($orgin);
這個列印的結果是:
array (size=3) 0 => array (size=3) 'id' => int 3809 'first_name' => string 'Mark' (length=4) 'last_name' => string 'Zuckerberg' (length=10) 1 => array (size=3) 'id' => int 4767 'first_name' => string 'Steve' (length=5) 'last_name' => string 'Jobs' (length=4) 2 => array (size=3) 'id' => int 5698 'first_name' => string 'Bill' (length=4) 'last_name' => string 'Gates' (length=5)