<?php
function  combine($array,$start,$key,$newkey){
  static $new; //静态变量
  foreach($array as $k=>$v){
    if($v[$key]==$start){
      $new[$v[$newkey]][] = $v;
      unset($array[$k]);
      continue;
    }
  }
  sort($array);
  if(count($array)!==0){
    combine($array,$array[0][$key],$key,$newkey);//递归调用
  }
  return $new;
}

$array=array();
$array=array(array('a'=>'aaa','b'=>'bbb'),array('a'=>'aaa','b'=>'ccc'),array('a'=>'123','b'=>'3456'));
$key='a';
$newkey='a';
$list=combine($array,$array[0][$key],$key,$newkey);
foreach($list as $key=>$val){
    $new_list[]=$val;
}
print_r($new_list);
/**
 * Array
(
    [0] => Array
        (
            [0] => Array
                (
                    [a] => aaa
                    [b] => bbb
                )

            [1] => Array
                (
                    [a] => aaa
                    [b] => ccc
                )

        )

    [1] => Array
        (
            [0] => Array
                (
                    [a] => 123
                    [b] => 3456
                )

        )

)

 */
?>

最新文章

  1. struts2国际化
  2. BZOJ4596: [Shoi2016]黑暗前的幻想乡
  3. css3加载ing动画
  4. hibernate 组件(Component)映射
  5. PHP练习题(二)
  6. 记录IOS入门的过程
  7. T-SQL语句——UNION, EXCEPT, INTERSECT
  8. linux之stat函数解析
  9. 将Cygwin Emacs设为Windows explorer默认打开程序
  10. java爬虫查找四川大学所有学院的网站的网址中的通知和新闻——以计算机学院为例
  11. 在Unix系统中,主存索引节点和辅存索引节点从内容上比较有什么不同,为什么要设置主存索引节点?
  12. python优雅编程之旅
  13. python str,list,tuple转换
  14. C/C++常用库及工具
  15. 洛谷 P2245 星际导航 解题报告
  16. Block(二)内存管理与其他特性-b
  17. luogu P2680 运输计划 65分做法
  18. 前端开发-2-HTML
  19. 个人作业2--APP案例分析
  20. webpack 安装以及使用

热门文章

  1. Python 学习——高阶函数 filter 和 sorted
  2. nodejs弯路-01之&#39;express&#39; 不是内部或外部命令
  3. CSS3如何实现超出指定文本以省略号显示效果
  4. Linux C 程序的开发环境
  5. sublime text3 支持终端打开文件
  6. html学习笔记 - sublime text 插件安装
  7. ionic2 使用 cordova 打包成安卓apk
  8. .net操作压缩文件
  9. 第 2 章 MySQL 架构组成
  10. 使用gzip优化web应用(filter实现)