数组中以某个字段进行分类

首先我们很多时候 需要对同一天的时间放到一个数组中,这样以便于前端或者移动端是使用,

那么我们通过一个例子来看一下;

$array = [    [‘name‘=>‘Tom‘,‘year‘=>20,‘day‘=>"1997"],    [‘name‘=>‘TomA‘,‘year‘=>21,‘day‘=>"1997"],    [‘name‘=>‘TomB‘,‘year‘=>22,‘day‘=>"1998"],    [‘name‘=>‘TomC‘,‘year‘=>23,‘day‘=>"1998"],    [‘name‘=>‘TomD‘,‘year‘=>24,‘day‘=>"1999"],    [‘name‘=>‘TomE‘,‘year‘=>25,‘day‘=>"1999"],];

$re = array();foreach($array as $a) {    $tmp_v = $a;    unset($tmp_v[‘day‘]);    if(isset($re[$a[‘day‘]])) {        $re[$a[‘day‘]][] = $tmp_v;    }else{        $re[$a[‘day‘]] = array($tmp_v);    }}foreach($re as $key=>$val){    $arr[]=array(        ‘day‘=>$key,        ‘res‘=>$val,    );}print_r($arr);

页面打印的情况;

通过这个栗子,可以知道 我们是以day进行分类,day值一样的 放到一个数组里面;

写的效率可能不是很好,如果大家有更好的方法,请指教
时间: 2024-10-12 21:59:50

数组中以某个字段进行分类的相关文章

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

想要实现二维数组中根据某个字段排序,一般可以通过数组循环对比的方式实现.这里介绍一种更简单的方法,直接通过PHP函数实现.array_multisort() :可以用来一次对多个数组进行排序,或者根据某一维或多维对多维数组进行排序.详细介绍可参考PHP手册:https://www.php.net/manual/zh/function.array-multisort.php 实例: 1.单个字段排序: $data = [ ['id' => 1, 'name' => '张三', 'sort' =&

通过反射将数组中的元素给一个对象中的各个字段赋值

现有一个附加信息对象AttachedInfo,它里面分别有Info01.Info02.....Info10一共十个附加信息字段,现在参数传过来是一个string[]数组,要怎么才能将这个数组中的元素分别对应到这个对象中的各个字段呢,通过反射就可以实现,即使后期AttachedInfo中的Info字段增加,或者说string[]中的元素个数与AttachedInfo中的Info字段个数不一致也没关系. AttachedInfo ai = new AttachedInfo(); //通过反射将Att

php 按照二位数组中某个指定的字段进行排序

/** * 按照二维数组中某个指定的某个字段进行排序 * @param $array 需要被排序的数组 * @param $flag 排序的标志 1,SORT_DESC 降序 2,SORT_ASC 升序 * @param int $range * @return array */function assortArray2($array,$flag,$keyword){ $sort = array( 'direction' => $flag, //排序顺序标志 1 ,SORT_DESC 降序:2

获取字符串中某一个字段的数据,GetValueFromStr

gps数据格式为:$GPRMC,024813.640,A,3158.4608,N,11848.3737,E,10.05,324.27,150706,,,A* /********************************************************************** *版权所有 (C)2015, Wuyq. * *文件名称: GetValueFromStr.c *内容摘要:用于演示从gps数据字符串中获取相应的内容 *其它说明:无 *当前版本: V1.0 *作

使用LINQ获取List列表中的某个字段值

使用LINQ获取列表中的某个字段值,下面以获取员工列表中的编号字段为例子. 1.使用Select方法 1 List<Emplayee> emplayeeList = GetEmplayeeList(); //获取员工信息列表 2 int[] empIds = emplayeeList.Select(a => a.Id).ToArray(); //获取员工编号数组 2.使用ForEach方法 1 List<Emplayee> emplayeeList = GetEmplayee

ASP.NET Web API中通过URI显示实体中的部分字段

有时候我们可能不想显示某个实体中的所有字段.比如客户端发出如下请求: locaohost:43321/api/groups/1/items?fields=idlocaohost:43321/api/groups/1/items?fields=id,name 以上,对于Item这个类,我们可能只想显示id,也有可能是想显示id和name,等等. 如何实现呢? → 后端接受fields这个查询字符串的值,split到数组或集合中→ 遍历这些字段,使用反射获取字段的值,并把每个键值存储起来 假设有如下

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

分享下PHP二维数组如何根据某个字段排序的方法. 从两个不同的表中获取各自的4条数据,然后整合(array_merge)成一个数组,再根据数据的创建时间降序排序取前4条. 本文记录的要实现的功能类似于 MySQL 中的 ORDER BY,上个项目中有遇到这样的一个需求. 要求:从两个不同的表中获取各自的4条数据,然后整合(array_merge)成一个数组,再根据数据的创建时间降序排序取前4条. 这个要求就不是 ORDER BY 能解决的问题了.因此翻看 PHP手册查找到了如下方法,做此笔记.

【剑指offer】Q40:数组中出现一次的数

书里面关于分类的判断有些麻烦,通过某一位为0为1来对数组元素进行分类.假如第3位为1,那么也就是元素x & 8 等于或不等于0,所以没必要非的用第几位去判断. def once(array): reOR = 0 for x in array: reOR ^= x bit1 = firstBit1(reOR) first = 0 second = 0 for x in array: if x & bit1 != 0: first ^= x else: second ^= x return f

PHP:计算文件或数组中单词出现频率

一:如果是小文件,可以一次性读入到数组中,使用方便的数组计数函数进行词频统计(假设文件中内容都是空格隔开的单词): <?php $str = file_get_contents("/path/to/file.txt"); //get string from file preg_match_all("/\b(\w+[-]\w+)|(\w+)\b/",$str,$r); //place words into array $r - this includes hyp