php二维数组根据某字段排序(对查询结果集进行排序)

转载 2016年08月31日 11:27:18

二维数组键值排序函数


/**
 * 对查询结果集进行排序
 * http://www.onethink.cn
 * /Application/Common/Common/function.php
 *
 * @access public
 * @param array $list 查询结果
 * @param string $field 排序的字段名
 * @param string $sortby 排序类型 (asc正向排序 desc逆向排序 nat自然排序)
 * @return array
 */
if (! function_exists('list_sort_by'))
{
    function list_sort_by($list, $field, $sortby = 'asc')
    {
        if (is_array($list))
        {
            $refer = $resultSet = array();
            foreach ($list as $i => $data)
            {
                $refer[$i] = &$data[$field];
            }
            switch ($sortby)
            {
                case 'asc': // 正向排序
                    asort($refer);
                    break;
                case 'desc': // 逆向排序
                    arsort($refer);
                    break;
                case 'nat': // 自然排序
                    natcasesort($refer);
                    break;
            }
            foreach ($refer as $key => $val)
            {
                $resultSet[] = &$list[$key];
            }
            return $resultSet;
        }
        return false;
    }
}

使用例子

/**
 * 例子
 * 求:根据二维数组的id键值降序排列(也就是id越大的排在越前)?
 */
$list = array(
    0 => array(
        'id' => 1,
        'name' => '第一'
    ),
    1 => array(
        'id' => 3,
        'name' => '第三'
    ),
    2 => array(
        'id' => 2,
        'name' => '第二'
    ),
    3 => array(
        'id' => 4,
        'name' => '第四'
    ),
);
//解答
$new_list = list_sort_by($list, 'id', 'desc');


PHP 二维数组根据某个字段进行排序

  • u014796999
  • u014796999
  • 2016年04月08日 16:21
  • 884

php对查询结果集进行排序

/**  * 对查询结果集进行排序  * @access public  * @param array $list 查询结果  * @param string $field 排序的字段名  ...
  • lz0426001
  • lz0426001
  • 2014年11月04日 13:58
  • 1206

二维数组根据某个字段排序

[php] view plain copy
  • u011447828
  • u011447828
  • 2016年06月28日 22:08
  • 1181

PHP 二维数组根据某个字段排序

本文记录的要实现的功能类似于 MySQL 中的  ORDER BY,上个项目中有遇到这样的一个需求。 要求:从两个不同的表中获取各自的4条数据,然后整合(array_merge)成一个数组,再根据数据...
  • liruxing1715
  • liruxing1715
  • 2014年06月03日 15:37
  • 49201

php数组根据指定字段对数组进行排序函数

//用保存的排序字段来排序 array_multisort($ages, SORT_ASC, $users);写成函数 /* *content: 根据数组某个字段进行排序 * $a...
  • solly793755670
  • solly793755670
  • 2016年12月21日 19:24
  • 988

PHP多维数组指定多字段排序

PHP多维数组指定多字段排序介绍array_multisort方法 array_multisort — 对多个数组或多维数组进行排序.其php 手册中的说明如下:bool array...
  • u011348776
  • u011348776
  • 2016年10月14日 18:35
  • 6319

用java把从数据库中查询出的结果集重新按照结果中的几个字段重新排序

public int compare(Object arg0, Object arg1) {    // TODO Auto-generated method stub    OBInAccountT...
  • bjnihao
  • bjnihao
  • 2009年05月15日 16:07
  • 3535

PHP数组根据某个字段排序

对于一位数组,大家都知道有sort(),rsort(),ksort(),krsort();等方法进行方便排序。 但是我们有时候是多维数组,并且我们想根据这些数组里面的某个字段来进行排序,应该怎么操作?...
  • zhanqixuan22
  • zhanqixuan22
  • 2015年11月19日 17:01
  • 1939

php二维数组多字段排序实现mysql order功能

php二维数组多字段排序实现mysql order功能:即按照某个字段排序时如果字段相同,再按照第二个字段排序 使用php原生的array_multisort()函数,执行速度会快些且降低自定义函数...
  • nuli888
  • nuli888
  • 2016年08月07日 21:50
  • 1021

PHP按二维数组中的某个值重新排序数组 usort的使用方法

$arr[] = ['aa'=>123,'bb'=>'abc']; $arr[] = ['aa'=>456,'bb'=>'dfe']; usort($arr,aa('aa')); var_dump(...
  • vterdfmqj
  • vterdfmqj
  • 2017年01月10日 16:17
  • 917
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:php二维数组根据某字段排序(对查询结果集进行排序)
举报原因:
原因补充:

(最多只允许输入30个字)