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

要处理的PHP数组:

$infos = array(    
    array(
        ‘gid‘ => 36,
        ‘name‘ => ‘高二佳木斯‘,         
        ‘start_time‘ => ‘2015-08-28 00:00:00‘,           
        ‘pic‘ => ‘2015/08/438488a00b3219929282e3652061c2e3.png‘                   
    ),    
    array(          
        ‘gid‘ => 36,
        ‘name‘ => ‘高二佳木斯‘,    
        ‘start_time‘ => ‘2015-08-20 00:00:00‘,            
        ‘pic‘ => ‘2015/08/438488a00b3219929282e3652061c2e3.png‘    
    ),   
    array(           
        ‘gid‘ => 36,
        ‘name‘ => ‘高二佳木斯‘,        
        ‘start_time‘ => ‘2015-08-28 00:00:00‘,  
        ‘pic‘ => ‘2015/08/438488a00b3219929282e3652061c2e3.png‘     
    ),    
    array(          
        ‘gid‘ => 36,
        ‘name‘ => ‘高二佳木斯‘,        
        ‘start_time‘ => ‘2015-08-27 00:00:00‘,  
        ‘pic‘ => ‘2015/08/438488a00b3219929282e3652061c2e3.png‘    
    ),   
    array(           
        ‘gid‘ => 18,           
        ‘name‘ => ‘天书‘,          
        ‘start_time‘ => ‘2015-08-24 00:00:00‘,           
        ‘pic‘ => ‘dev/2015/08/438488a00b3219929282e3652061c2e3.png‘       
    ),   
    array(         
        ‘gid‘ => 17,           
        ‘name‘ => ‘晒黑西游‘,          
        ‘start_time‘ => ‘2015-08-06 00:00:00‘,       
        ‘pic‘ => ‘‘
    )    
    array(           
       ‘gid‘ => 17,           
       ‘name‘ => ‘晒黑西游‘,           
       ‘start_time‘ => ‘2015-08-24 00:00:00‘,         
       ‘pic‘ => 
    )
);

处理要求:将数组中gid相同的二维数组合并到一个数组中,生成一个新的二维数组

代码:

$result= array();
foreach ($infos as $key => $info) {
    $result[$info[‘gid‘]][] = $info;
} 
print_r($result);

output:

Array(  
  [36] => Array(            
      [0] => Array(                   
          [gid] => 36                   
          [name] => 高二佳木斯            
          [start_time] => 2015-08-28 00:00:00        
          [pic] => dev/2015/08/438488a00b3219929282e3652061c2e3.png                
      )            
     [1] => Array(
          [gid] => 36 
          [name] => 高二佳木斯                   
          [start_time] => 2015-08-20 00:00:00              
          [pic] => dev/2015/08/438488a00b3219929282e3652061c2e3.png                
      )           
      [2] => Arra(                    
          [gid] => 36                   
          [name] => 高二佳木斯               
          [start_time] => 2015-08-28 00:00:00           
          [pic] => dev/2015/08/438488a00b3219929282e3652061c2e3.png               
      )          
      [3] => Array(                    
          [gid] => 36                  
          [name] => 高二佳木斯               
          [start_time] => 2015-08-27 00:00:00           
          [pic] => dev/2015/08/438488a00b3219929282e3652061c2e3.png               
      ) 
  )   
  [18] => Array(            
      [0] => Array(                   
          [gid] => 18               
          [name] => 天书             
          [start_time] => 2015-08-24 00:00:00    
          [pic] => dev/2015/08/438488a00b3219929282e3652061c2e3.png                
      )               
  )        
  [17] => Array(            
      [0] => Arra(                 
          [gid] => 17           
          [name] => 晒黑西游      
          [start_time] => 2015-08-06 00:00:00        
          [pic] => 
      )            
     [1] => Array(            
         [gid] => 17       
         [name] => 晒黑西游       
         [start_time] => 2015-08-24 00:00:00            
         [pic] => 
     )        
  )
);
时间: 2024-10-04 03:04:36

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

对一个给定的二维数组按照指定的键值进行排序

public function set_s(){ $arr = [ ['one' => 6,'two' => 19], ['one' => 36,'two' => 3], ['one' => 26,'two' => 3], ['one' => 2,'two' => 84], ['one' => 5,'two' => 35], ['one' => 6,'two' => 56], ['one' => 7,'two' => 7]

JavaScript 通过循环按执行顺序,做一个5×5的二维数组,赋1到25的自然数,然后输出该数组的左下半三角。

通过循环按执行顺序,做一个5×5的二维数组,赋1到25的自然数,然后输出该数组的左下半三角.试编程. 基本思路: 1 var container_arr = []; 2 // 建立五个数组 3 for(var i = 0,count = 0 ; i < 5; i++){ 4 var arr = []; 5 for(var k = 0 ; k < 5 ; k ++){ 6 // 这个内层循环会执行 5 * 5 次 7 count ++; //count会从1 ~ 25 8 arr.push(co

求一个已知二维数组的最大子数组和(司宇,廖强)

小组成员:司宇,廖强 设计流程:          设计界面:               程序设计:1.封装一个求二维整数组最大子数组和的子程序: 2.设计一个主函数,主函数可以调用子函数: 3.在主函数中添加代码,使主函数可以调用一个TXT文件并且得到要求的结果. 遇到的问题:1.在调用txt文件时,没办法使调用文件前两行分别显示行数和列数: 2.在调用子函数的时候,不知道应该赋值给子函数一个什么类型的参数: 3.如何将String类型的二维数组转化为int类型. 解决方案:(当我们遇到问题

数组重构 根据mid 把所有 属于mid 的投资累加 重构出 新的二维数组

$arr = array( 25 =>array( 'mid' => '28838', 'invest_money' => '1196000',  'rm_id' =>  '157733',  ), 27 =>array (  'mid' => '28838',  'invest_money' =>'1180000',  'rm_id' => '157733',), 28 => array ( 'mid' => '28838', 'invest_

php 二维数组 根据条件合并成新的二维数组

$_data = []; $order_id = ''; foreach ($data as $k => $v) { if($order_id != $v['order_id']){ $arr = []; $arr['id'] = $v['id']; $arr['order_number'] = $v['order_number']; $arr['edit_time'] = $v['edit_time']; $arr['order_state'] = $v['order_state']; $ar

环状二维数组最大子数组求和

题目:返回一个二维整数数组中最大子数组的和.要求:输入一个二维整形数组,数组里有正数也有负数.二维数组首尾相接,象个一条首尾相接带子一样. n数组中连续的一个或多个整数组成一个子数组,每个子数组都有一个和.求所有子数组的和的最大值.要求时间复杂度为O(n). 结对编程要求: 两人结对完成编程任务. 一人主要负责程序分析,代码编程. 一人负责代码复审和代码测试计划. 发表一篇博客文章讲述两人合作中的过程.体会以及如何解决冲突(附结对开发的工作照). 结对开发过程: 这次的编程开发是基于上次的以为数

首尾相连的二维数组最大子数组求和

题目:返回一个二维整数数组中最大子数组的和.要求:输入一个二维整形数组,数组里有正数也有负数.二维数组首尾相接,象个一条首尾相接带子一样. n数组中连续的一个或多个整数组成一个子数组,每个子数组都有一个和.求所有子数组的和的最大值.要求时间复杂度为O(n). 结对编程要求: 两人结对完成编程任务. 一人主要负责程序分析,代码编程. 一人负责代码复审和代码测试计划. 发表一篇博客文章讲述两人合作中的过程.体会以及如何解决冲突(附结对开发的工作照). 结对开发过程: 这次的编程开发是基于上次的以为数

周泊辰和张子涵返回二维数组整数组和

首先了解一维数组的求最大和,可以先列举出一维数组的所有子数组并求出他们的和,即加上一个正的和会增加,反之减少,如果某一个和为负数,那么就应该放弃他,然后清零.然后求二维数组最大子数组的和,可以转化为求一维数组最大子数组的和设一个二维数组a[n][m],找它的 最大子数组之和,先建立一个新的二维数组b[n][m],二维数组b[j][k] 存放的是a[j][k](0<=j2.循环:从a[0][0]开始 以此是 a[0][1]. a[0][2]--a[0][m].a[1][0]. a[1][1]--a

php二维数组修改键名

最近遇到一个问题,是关于json数据提交的时候,总是报出[object object]的错误,查了晚上需要资料,大部分的说法是json数据格式不规范导致的错误.一般建议说将dataType类型注释掉.但是都试了一下都没有解决.最后还怀疑是使用json_encode这个函数php版本的问题等等,都没有解决.主要我后台提交过来的是一个一维数组,而且还没有键值的一维数组.因此有同事说我的json数据格式不规范,必须要有键和值.这个我键蛋疼了,本来使用thinkphp的方式查出的数据就是二维数组,进行数