php二维数组字段排序入门例子

发布时间:2020-04-05编辑:脚本学堂
有关php二维数组根据指定字段排序的方法,功能类似于 mysql中order by子句,根据指定字段排序,感兴趣的朋友参考下。

php二维数组根据指定字段排序的方法,功能类似于 mysql 中 order by子句。

要求:从两个不同的表中获取各自的4条数据,然后整合(array_merge)成一个数组,再根据数据的创建时间降序排序取前4条。

完整代码:
 

复制代码 代码示例:
<?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
*/