程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
 程式師世界 >> 編程語言 >> 網頁編程 >> PHP編程 >> 關於PHP編程 >> PHP 二維數組根據某個字段排序的具體實現

PHP 二維數組根據某個字段排序的具體實現

編輯:關於PHP編程

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

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

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

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

    .代碼如下:
    <?php 
    /** 
    * 二維數組根據某個字段排序 
    * 功能:按照用戶的年齡倒序排序 
    * @author ruxing.li 
    */ 
    header('Content-Type:text/html;Charset=utf-8'); 
    $arrUsers = array( 
    array( 
    'id' => 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 

    */ 
    1. 上一頁:
    2. 下一頁:
    Copyright © 程式師世界 All Rights Reserved