当前位置: 首页 > news >正文

php 二维数组排序/对数组分组

/**
 * 二维数组根据字段进行排序
 * @params array $array 需要排序的数组
 * @params string $field 排序的字段
 * @params string $sort 排序顺序标志 SORT_DESC 降序;SORT_ASC 升序
 */
 function arraySequence($array, $field, $sort = 'SORT_DESC')
{
    $arrSort = array();
    foreach ($array as $uniqid => $row) {
        foreach ($row as $key => $value) {
            $arrSort[$key][$uniqid] = $value;
        }
    }
    array_multisort($arrSort[$field], constant($sort), $array);
    return $array;
}

 

实现方法二,本人使用该方法

/**
 * 二维数组根据字段进行排序
 * @params array $array 需要排序的数组
 * @params string $field 排序的字段
 * @params string $sort 排序顺序标志 SORT_DESC 降序;SORT_ASC 升序
 */
 function arraySequence($array, $field, $sort = 'SORT_DESC')
{
  $sort = array(
        'direction' => $sort, //排序顺序标志 SORT_DESC 降序;SORT_ASC 升序
        'field'     => $field,       //排序字段
);
$arrSort = array();
foreach($array AS $uniqid => $row){
    foreach($row AS $key=>$value){
        $arrSort[$key][$uniqid] = $value;
    }
}
if($sort['direction']){
    array_multisort($arrSort[$sort['field']], constant($sort['direction']), $array);
}
    return $array;
}

 

 

/*
数据按键值分组
$arr  传入数组
$key  需分组的键值
调用方法  array_group_by($html, $key='one');
*/
function array_group_by($arr, $key)
    {
        $grouped = [];
        foreach ($arr as $value) {
            $grouped[$value[$key]][] = $value;
        }
       
        if (func_num_args() > 2) {
            $args = func_get_args();
            foreach ($grouped as $key => $value) {
                $parms = array_merge([$value], array_slice($args, 2, func_num_args()));
                $grouped[$key] = call_user_func_array('array_group_by', $parms);
            }
        }
        return $grouped;
    }

 

转载于:https://www.cnblogs.com/yipiantian/p/7717720.html

相关文章:

  • php数组·的方法-数组检索
  • 软件选择的起点:目的与需求
  • Loadrunner视频教程汇总
  • 离散点最小(凸)包围边界查找
  • 深圳大学教授:人脸识别如何助力深圳智慧城市建设?
  • centos7如何安装zabbix
  • 容器化应用: 在阿里云搭建多节点 Openshift 集群
  • pyspider爬取数据导入mysql--1.安装驱动
  • 微信模板消息发送
  • CTF---隐写术入门第二题 小苹果
  • 敏捷开发思想及Scrum实践
  • WCF技术剖析之二十一:WCF基本异常处理模式[中篇]
  • 调用函数
  • Linux运维之道之admin1.4(权限和归属,LDAP认证)
  • 001大数据简介
  • 分享一款快速APP功能测试工具
  • [rust! #004] [译] Rust 的内置 Traits, 使用场景, 方式, 和原因
  • Angular6错误 Service: No provider for Renderer2
  • Docker 笔记(2):Dockerfile
  • HTML5新特性总结
  • Javascript编码规范
  • java架构面试锦集:开源框架+并发+数据结构+大企必备面试题
  • linux安装openssl、swoole等扩展的具体步骤
  • log4j2输出到kafka
  • nodejs实现webservice问题总结
  • Promise初体验
  • Python实现BT种子转化为磁力链接【实战】
  • SpingCloudBus整合RabbitMQ
  • springboot_database项目介绍
  • Traffic-Sign Detection and Classification in the Wild 论文笔记
  • Web Storage相关
  • webpack4 一点通
  • 创建一种深思熟虑的文化
  • 个人博客开发系列:评论功能之GitHub账号OAuth授权
  • 将回调地狱按在地上摩擦的Promise
  • 利用DataURL技术在网页上显示图片
  • 深度学习在携程攻略社区的应用
  • 【干货分享】dos命令大全
  • LevelDB 入门 —— 全面了解 LevelDB 的功能特性
  • MyCAT水平分库
  • 新年再起“裁员潮”,“钢铁侠”马斯克要一举裁掉SpaceX 600余名员工 ...
  • ​LeetCode解法汇总2808. 使循环数组所有元素相等的最少秒数
  • ​ubuntu下安装kvm虚拟机
  • "无招胜有招"nbsp;史上最全的互…
  • #pragma once与条件编译
  • (html转换)StringEscapeUtils类的转义与反转义方法
  • (PWM呼吸灯)合泰开发板HT66F2390-----点灯大师
  • (二)基于wpr_simulation 的Ros机器人运动控制,gazebo仿真
  • .net php 通信,flash与asp/php/asp.net通信的方法
  • .NET Windows:删除文件夹后立即判断,有可能依然存在
  • .NET6实现破解Modbus poll点表配置文件
  • .Net7 环境安装配置
  • .NET关于 跳过SSL中遇到的问题
  • [ 云计算 | AWS 实践 ] 基于 Amazon S3 协议搭建个人云存储服务
  • [100天算法】-x 的平方根(day 61)