对数组$array重组:$array = array(array('id'=>1,'name'=>'aa','pwd'=>'12'),array('id'=>1,'name'=>'bb','pwd'=>'56'),array('id'=>1,'name'=>'saa','pwd'=>'89'),array('id'=>2,'name'=>'cc','pwd'=>'78'));
实现代码如下:$tmpArray = array();foreach ($array as $row) {$key = $row['id'];if (array_key_exists($key, $tmpArray)) {//$tmpArray[$key]['pwd'] = $tmpArray[$key]['pwd']  . ',' . $row['pwd'];  //用这句的话下面有关pwd的条件语句都要删掉,实现其字符串形式if (is_array($tmpArray[$key]['name'])) {$tmpArray[$key]['name'][] = $row['name'];} else {$tmpArray[$key]['name'] = array($tmpArray[$key]['name'], $row['name']);}if (is_array($tmpArray[$key]['pwd'])) {$tmpArray[$key]['pwd'][] = $row['pwd'];} else {$tmpArray[$key]['pwd'] = array($tmpArray[$key]['pwd'], $row['pwd']);}} else {$tmpArray[$key] = array('id'=>$row['id'],'name'=>array($row['name']),'pwd'=>array($row['pwd'])); //此句要注意,可设置// $tmpArray[$key] = $row; // 有字段相加时可能会代替上面一句}}echo "<pre>";var_dump($tmpArray);打印结果为:array (size=2)1 => array (size=3)'id' => int 1'name' => array (size=3)0 => string 'aa' (length=2)1 => string 'bb' (length=2)2 => string 'saa' (length=3)'pwd' => array (size=3)0 => string '12' (length=2)1 => string '56' (length=2)2 => string '89' (length=2)2 => array (size=3)'id' => int 2'name' => array (size=1)0 => string 'cc' (length=2)'pwd' => array (size=1)0 => string '78' (length=2)

实现了用上面的id值来分组。

 // $field 为一维数字数组,$field[0]为用于分组的单一字段。   public function combine($array,$field){$tmpArray = array();$distinct_field = $field[0];unset($field[0]);foreach ($array as $row) {$key = $row[$distinct_field];if (array_key_exists($key, $tmpArray)) {foreach($field as $value){if (is_array($tmpArray[$key][$value])) {$tmpArray[$key][$value][] = $row[$value];} else {$tmpArray[$key][$value] = array($tmpArray[$key][$value], $row[$value]);}}} else {$tmpArray[$key][$distinct_field] = $row[$distinct_field];foreach ($field as $value){$tmpArray[$key][$value] = array($row[$value]);}}}return $tmpArray;}

php 把多维数组中,某值相同的项合并,重组数据(不用再愁postgres中无mysql中的group_concat()功能)相关推荐

  1. php 二位数组去掉重复,PHP 二维数组去掉重复值并保持原结构

    PHP 二维数组去掉重复值并保持原结构 直接上代码,解释很详细 //二维数组去掉重复值 function arrunique($a){ foreach($a[0] as $k => $v){ / ...

  2. 动态二维数组外圈元素值的和_C语言 | 用指向元素的指针变量输出二维数组元素的值...

    例33:有一个3*4的二维数组,要求用C语言实现指向元素的指针变量输出二维数组个元素的值. 解题思路:二维数组的元素时整型的,它相当于整型变量,可以用int*型指针变量指向它.二维数组的元素在内存中是 ...

  3. PHP 二维数组去掉重复值并保持原结构

    不得不说PHP的数组功能真的是非常强大. 下面直接上PHP的二维数组去掉重复值并保持原结构的 代码: //二维数组去掉重复值 function arrunique($a){ foreach($a[0] ...

  4. 利用循环,使得10 * 10的二维数组具有以下值,并按以下结构输出在屏幕上

    <程序设计基础-c语言>杨莉 刘鸿翔 ISBN-978-7-03-032903-5 p113 习题4 5.利用循环,使得10 * 10的二维数组具有以下值,并按以下结构输出在屏幕上 0 1 ...

  5. php-使用函数array_walk_recursive处理多维数组的键值后返回一个新数组

    php-使用函数array_walk_recursive处理多维数组的键值后返回一个新数组 $result = array(); //$content是一个多维数组 $walk = array_wal ...

  6. 【C 语言】二级指针内存模型 ( 指针数组 | 二维数组 | 自定义二级指针 | 将 一、二 模型数据拷贝到 三 模型中 并 排序 )

    文章目录 一.指针数组 和 二维数组 数据 拷贝到 自定义二级指针 中 1.函数形参 设计规则 2.三种内存模型 对应 函数形参 指针退化规则 二.完整代码示例 一.指针数组 和 二维数组 数据 拷贝 ...

  7. php 二维数组根据键值合并二维数组_php数组根据某键值,把相同键值的合并最终生成一个新的二维数组...

    匿名用户 1级 2013-12-29 回答 php数组根据某一个键值,把相同键值的合并生成一个新的二维数组 源数据: $infos = array( array( 'a' => 36, 'b' ...

  8. PHP二维数组去除重复值

    $excel_array = [['a'],['b'],['a']]; $array=[]; foreach($excel_array as $key=>$v){if(in_array($v[0 ...

  9. C如何将二维数组作为返回值

    做大作业遇到这样一个问题:在子函数里申请了一个二维数组,在主函数里要用到二维数组里的数据,但是在主函数里又不能提前申请(因为不知道数组长度),所以需要将数组return得到. 子函数: float * ...

最新文章

  1. Leetcode 1
  2. VS2010中文注释带红色下划线的解决方法
  3. python界面图片-python如何实现读取并显示图片(不需要图形界面)
  4. 剑指offer:反转链表
  5. 再次搬家到自建博客http://www.wikieee.com/blog/leiad/homepage
  6. 在 CTreeCtrl 中枚举系统中的所有窗口!(I)
  7. Linux下强制某登录用户下线
  8. Python--day45--pymysql模块初识以及SQL注入
  9. 360安全浏览器安装adblock plus
  10. 如何实现用串口助手实时绘制16位数据波形图
  11. T5: Linux查看cpu信息,是否支持avx2指令集
  12. 另辟蹊径--极简Swifty路由
  13. onblur onchange
  14. 关于Mysql中的生日提醒
  15. 密码加密md5和加盐处理
  16. 服务器开机显示f1 f2,开机按f1的解决方法|开机按f2的解决方法|电脑开机按f1怎么解决...
  17. 工作11年后一切归零
  18. 蜂窝移动网络是什么,它和 Wi-Fi 有什么区别? 蓝牙和无线有什么区别?
  19. COVID-19检测方法汇总
  20. springboot 启动非常慢(超过80秒)解决方案

热门文章

  1. 新数据网格DataGridView简介(转自MSDN)
  2. Postgresql数据库javaweb教程详细完整版(一)
  3. nbu进程异常,备份失败
  4. 关于最新安装cocapods所遇到的问题(坑)
  5. 设计模式:Facade模式
  6. 汇编实验 使用汇编编写音乐播放程序,编写3个以上乐曲,在播放之前可以选择播放的曲目
  7. 科创板首只涨停股 沃尔德的金刚钻是干嘛的?
  8. 计算机网络--交换机自学习及转发帧
  9. 飞机飞行仪表行业研究及十四五规划分析报告
  10. RK3326平台Android9.0OTA差分包制作