PHP 二維數組依據某個欄位排序

來源:互聯網
上載者:User
PHP 二維數組根據某個欄位排序

本文記錄的要實現的功能類似於 MySQL 中的 ORDER BY,上個項目中有遇到這樣的一個需求。

要求:從兩個不同的表中擷取各自的4條資料,然後整合(array_merge)成一個數組,再根據資料的建立時間降序排序取前4條。

遇到這個要求的時候就不是 ORDER BY 能解決的問題了。因此翻看 PHP 手冊尋找到了如下方法,做此筆記。

廢話少說,奉上代碼,清單如下:

 1,            'name' => '張三',            'age'  => 25,    ),    array(            'id'   => 2,            'name' => '李四',            'age'  => 23,    ),    array(            'id'   => 3,            'name' => '王五',            'age'  => 40,    ),    array(            'id'   => 4,            'name' => '趙六',            'age'  => 31,    ),    array(            'id'   => 5,            'name' => '黃七',            'age'  => 20,    ),); $sort = array(        'direction' => 'SORT_DESC', //排序次序標誌 SORT_DESC 降序;SORT_ASC 升序        'field'     => 'age',       //排序欄位);$arrSort = array();foreach($arrUsers AS $uniqid => $row){    foreach($row AS $key=>$value){        $arrSort[$key][$uniqid] = $value;    }}if($sort['direction']){    array_multisort($arrSort[$sort['field']], constant($sort['direction']), $arrUsers);}var_dump($arrUsers);/*輸出結果:array (size=5)  0 =>     array (size=3)      'id' => int 5      'name' => string '黃七' (length=6)      'age' => int 20  1 =>     array (size=3)      'id' => int 2      'name' => string '李四' (length=6)      'age' => int 23  2 =>     array (size=3)      'id' => int 1      'name' => string '張三' (length=6)      'age' => int 25  3 =>     array (size=3)      'id' => int 4      'name' => string '趙六' (length=6)      'age' => int 31  4 =>     array (size=3)      'id' => int 3      'name' => string '王五' (length=6)      'age' => int 40*/

本文來自於 CSDN,轉載請標註出處!原文地址:http://blog.csdn.net/liruxing1715/article/details/28265495

  • 相關文章

    聯繫我們

    該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

    如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

    A Free Trial That Lets You Build Big!

    Start building with 50+ products and up to 12 months usage for Elastic Compute Service

    • Sales Support

      1 on 1 presale consultation

    • After-Sales Support

      24/7 Technical Support 6 Free Tickets per Quarter Faster Response

    • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.