【2016.4.27】二维数组分组:按照一个键值,按照多个键值

<?php
$arr = array(
    array(‘id‘ => 1, ‘name‘ => ‘seu‘,‘brand‘=>‘临‘),
    array(‘id‘ => 1, ‘name‘ => ‘seu‘,‘brand‘=>‘临‘),
    array(‘id‘ => 3, ‘name‘ => ‘njupt‘,‘brand‘=>‘兵‘),
    array(‘id‘ => 3, ‘name‘ => ‘njupt‘,‘brand‘=>‘斗‘),
    array(‘id‘ => 1, ‘name‘ => ‘seu‘,‘brand‘=>‘者‘),
    array(‘id‘ => 1, ‘name‘ => ‘seu‘,‘brand‘=>‘皆‘),
    array(‘id‘ => 1, ‘name‘ => ‘seu‘,‘brand‘=>‘皆‘),
    array(‘id‘ => 2, ‘name‘ => ‘peking‘,‘brand‘=>‘阵‘),
    array(‘id‘ => 2, ‘name‘ => ‘peking‘,‘brand‘=>‘阵‘),
    array(‘id‘ => 3, ‘name‘ => ‘njupt‘,‘brand‘=>‘兵‘),
);

现有如上的二维数组

要求1:按照id分组

实现方法:

<?php
foreach($arr as $v){
    $newArr[$v[‘id‘]][] = $v;
}
return array_values($newArr);

要求2:按照id和brand分组

实现方法:

foreach($arr as $v){
    $newArr[$v[‘id‘].$v[‘brand‘]][] = $v;
}
return array_values($newArr);
时间: 2024-08-03 06:55:33

【2016.4.27】二维数组分组:按照一个键值,按照多个键值的相关文章

在一个每一行从左到右递增每一列从上到下递增的二维数组中查找一个整数是否存在——3

给定一个二维数组,数组的特点是:每一行从左到右数据大小依次递增,每一列数据从上到下依次递增,要求判断一个整数是否在这个二维数组中: 设计二维数组如下: 首先,毋庸置疑的的是,遍历一遍数组肯定能判断出来,这也是最笨的方法了,因此,要想提高程序的运行效率就得找出一种高效的方法来查找: 一开始的想法大概都能想到从数组第一行第一列的数开始沿着对角线判断,如果是对角线数据就可以直接返回,比如我们要想查找17这个数,这时候17比0.9.16都要大,因此以0.9.16为对角线的矩形数据就可以排除了,接下来判断

剑指offer-特定二维数组中查找一个元素是否存在-二分搜索-二维数组

int [][] array ={ {1,2,8,9}, {2,4,9,12}, {4,7,10,13}, {6,8,11,19} }; 在一个二维数组中,每一行都按照从左到右递增的顺序排序,每一列都按照从上到下递增的顺序排序.请完成一个函数,输入这样的一个二维数组和一个整数,判断数组中是否含有该整数. public class Solution { public static boolean Find(int target, int [][] array) { int M = array.le

PHP如何随机获取一个二维数组中的一个值

获取一个数组: $awardid_list=pdo_fetchall('select id from '.tablename($this->table_award)); 这是微擎的写法哈,意思就是查询一组字段为id的数据: 二维数组如图: 那么值是1.2.3,我们如何随机获取呢,请往下看代码: $no=array_rand($awardid_list); print_r($awardid_list[$no]['id']); 这样就OK了哈,就可以随机获取值1.2.3了哦.

php二维数组,按照指定的key,去排序value值

$arr = array( '11'=>array( 'a'=>1, 'b'=>2, ), '22'=>array( 'a'=>3, 'b'=>4, ), '33'=>array( 'a'=>5, 'b'=>6, ) ); $data = $this->array_sort($arr,'a','desc','yes'); private function array_sort($arr,$keys,$orderby='asc',$key='no'

二级指针与二维数组

最近看<Linux C程序设计大全>这本书,虽然书中有一些错误,但整体来说,书写得还算可以. 当看到网络编程[第23.2.4小节 获得主机信息]时,遇到了一段代码,原文如下: “一台主机有许多和网络相关的信息,例如,主机名称.IP地址.主机提供的服务等.这些信息一般都保存在系统中的某个文件里(例如/etc/hosts等),用户程序可以通过系统提供的函数读取这些文件上的内容.Linux环境下使用gethostent函数读取和主机有关的信息,该函数的原型如下: 1 #include <net

参数传递二维数组

转自http://blog.csdn.net/yunyun1886358/article/details/5659851 数组名作为形参 1 void func1(int iArray[][10]) 2 { 3 4 } 5 6 7 8 int main() 9 { 10 int array[10][10]; 11 func1(array); 12 13 } 编译通过,注意形参声明一定要给出第二个维度的大小,要不编译不过. 一维数组指针作为形参 1 void func2(int (*pArray)

剑指offer 面试题(二维数组中的查找) (2)

面试题: 二维数组中的查找 /* 题目:   在一个二维数组中,每一行都按照从左到右递增的顺序排序,每一列都按照从上到下递增的顺序排序.请完成 一个函数,输入这样的一个二维数组和一个整数,判断数组中是否含有该数. */ ps:(其实前段时间我就做过这道题,今天看到了,觉得还是有点生,那就再来一次吧) 题目分析:  在分析这个问题的时候,我们首先要看,在一个二维数组中查找一个数字是否存在,那么很多人就觉得 简单了,遍历二维数组与所需要查找的数字进行比较不就完了!  不可否认的是你说的是可行的,可是

[java学习笔记]java语言基础概述之数组的定义&amp;常见操作(遍历、排序、查找)&amp;二维数组

1.数组基础 1.什么是数组:           同一类型数据的集合,就是一个容器. 2.数组的好处:           可以自动为数组中的元素从零开始编号,方便操作这些数据. 3.格式:  (一旦创建,必须明确长度)          格式1:              元素类型   [ ]  数组名  =  new  元素类型  [元素个数即数组的长度]:              示例:int[] array = new int[5];          格式2:           

【C/C++学院】(3)二维数组/二分查找法/指针/模块注射

1.二维数组 二维数组可以当做一个一维数组, 每一个元素又是一个一维数组. #include <stdio.h> #include <stdlib.h> void main() { int a[3][4] = { 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12 }; for (int i = 0; i < 3; i++) { for (int j = 0; j < 4; j++) { printf("%d,%d,%d,%x,%x &