合并数组

例子1:

<?php
$msg = [
  "code" => "0",
  "msg" => "",
  "count" => "",
];
$data = [
  "name" => "lady",
  "age" => "0",
  "count" => "0",
];
$msg['data'] = $data;
print_r($msg);

输出:

Array
(
  [code] => 0
  [msg] =>
  [count] =>
  [data] => Array
  (
    [name] => lady
    [age] => 0
    [count] => 0
  )
)

例子二:

<?php
$a1 = [
'red', 'green',
];
$a2 = [
'blue', 'yellow',
];
print_r(array_merge($a1, $a2));

输出:

Array
(
  [0] => red
  [1] => green
  [2] => blue
  [3] => yellow
)

例子三:

<?php
$a1 = [
'apple' => 'red',
'banner' => 'yellow',
];
$a2 = [
'pear' => 'yellwo',
'apple' => 'green',
];
$result = array_merge_recursive($a1, $a2);
print_r($result);

输出:

Array
(
[apple] => Array
(
[0] => red
[1] => green
) [banner] => yellow
[pear] => yellwo
)

例子四:

<?php
$a = array('color' => 'red');
$b = array('color' => 'blue', 'type' => 'fruit');
$arr = $a + $b;
print_r($arr);

输出:

Array
(
[color] => red
[type] => fruit
)

例子五:

<?php
$a = [
[
'id' => '1',
'name' => '张三',
'age' => '18',
],
[
'id' => '1',
'name' => '小米',
'age' => '15',
],
[
'id' => '3',
'name' => '张三',
'age' => '20',
],
[
'id' => '3',
'name' => '张六',
'age' => '29',
],
[
'id' => '3',
'name' => '张三疯',
'age' => '20',
],
];
$b = [];
foreach ($a as $k => $v) {
if (!isset($b[$v['id']])) {
$b[$v['id']] = $v;
} else {
$b[$v['id']]['name'] .= ',' . $v['name'];
}
}
// echo '<pre>';
print_r(array_values($b));

输出:

Array
(
[0] => Array
(
[id] => 1
[name] => 张三,小米
[age] => 18
) [1] => Array
(
[id] => 3
[name] => 张三,张六,张三疯
[age] => 20
) )

 例子六:

<?php
$arr = array(
array(
'id' => 1,
'pid' => 0,
'name' => '新闻分类',
),
array(
'id' => 2,
'pid' => 0,
'name' => '最新公告',
),
array(
'id' => 3,
'pid' => 1,
'name' => '国内新闻',
),
array(
'id' => 4,
'pid' => 1,
'name' => '国际新闻',
),
array(
'id' => 5,
'pid' => 0,
'name' => '图片分类',
),
array(
'id' => 6,
'pid' => 5,
'name' => '新闻图片',
),
array(
'id' => 7,
'pid' => 5,
'name' => '其它图片',
),
); //整理函数
/**
* 生成无限级树算法
* @author Baiyu 2014-04-01
* @param array $arr 输入数组
* @param number $pid 根级的pid
* @param string $column_name 列名,id|pid父id的名字|children子数组的键名
* @return array $ret
*/
function make_tree($arr, $pid = 0, $column_name = 'id|pid|children') {
list($idname, $pidname, $cldname) = explode('|', $column_name);
$ret = array();
foreach ($arr as $k => $v) {
if ($v[$pidname] == $pid) {
$tmp = $arr[$k];
unset($arr[$k]);
$tmp[$cldname] = make_tree($arr, $v[$idname], $column_name);
$ret[] = $tmp;
}
}
return $ret;
}
$output_array = make_tree($arr);
print_r($output_array);

输出:

Array
(
[0] => Array
(
[id] => 1
[pid] => 0
[name] => 新闻分类
[children] => Array
(
[0] => Array
(
[id] => 3
[pid] => 1
[name] => 国内新闻
[children] => Array
(
) ) [1] => Array
(
[id] => 4
[pid] => 1
[name] => 国际新闻
[children] => Array
(
) ) ) ) [1] => Array
(
[id] => 2
[pid] => 0
[name] => 最新公告
[children] => Array
(
) ) [2] => Array
(
[id] => 5
[pid] => 0
[name] => 图片分类
[children] => Array
(
[0] => Array
(
[id] => 6
[pid] => 5
[name] => 新闻图片
[children] => Array
(
) ) [1] => Array
(
[id] => 7
[pid] => 5
[name] => 其它图片
[children] => Array
(
) ) ) ) )

php,合并数组,合并一维数组,合并二维数组,合并多维数组的更多相关文章

  1. PHP如何判断一个数组是一维的还是二维的

    1.首先我们有一个PHP内置函数 count(); count(array,mode); array是数组,mode默认为0,1是递归的计数 <?php if(count($arr) == co ...

  2. lintcode: 把排序数组转换为高度最小的二叉搜索树

    题目: 把排序数组转换为高度最小的二叉搜索树 给一个排序数组(从小到大),将其转换为一棵高度最小的排序二叉树. 样例 给出数组 [1,2,3,4,5,6,7], 返回 4 / \ 2 6 / \ / ...

  3. PHP如何判断一个数组是一维数组或者是二维数组?用什么函数?

    如题:如何判断一个数组是一维数组或者是二维数组?用什么函数? 判断数量即可 <?php if (count($array) == count($array, 1)) { echo '是一维数组' ...

  4. Java学习-046-日志抓取合并后排序问题解决方案之 --- log4j 二次定制,实现日志输出添加延时10ms

    自3月25至今,已经好久没有写学习日志了,今天在写日志抓取合并的小方法,发现抓取后的日志并米有依据系统执行的日志顺序排序.日志抓取排列逻辑如下: 通过日志标识,从各个日志文件(例如 use.log,e ...

  5. C# 数组、一维数组、二维数组、多维数组、锯齿数组

    C#  数组.一维数组.二维数组.多维数组.锯齿数组 一.数组: 如果需要使用同一类型的对象,就可以使用数组,数组是一种数据结构,它可以包含同一类型的多个元素.它的长度是固定的,如长度未知的情况下,请 ...

  6. Python输入数组(一维数组、二维数组)

    一维数组: arr = input("") //输入一个一维数组,每个数之间使空格隔开 num = [int(n) for n in arr.split()] //将输入每个数以空 ...

  7. 第3章 Java数组(上): 一维数组和二维数组

    3.数组及排序算法(2天) 3.1 数组的概述 2课时 3.2 一维数组的使用 3课时 3.3 多维数组的使用 3课时 3.4 数组中涉及到的常见算法 3课时 3.5 Arrays工具类的使用 3课时 ...

  8. [PHP]快速实现:将二维数组转为一维数组

    如何将下面的二维数组转为一维数组. $msg = array( array( 'id'=>'45', 'name'=>'jack' ), array( 'id'=>'34', 'na ...

  9. [C++]二维数组还是一维数组?

    记得刚学习C++那会这个问题曾困扰过我,后来慢慢形成了不管什么时候都用一维数组的习惯,再后来知道了在一维数组中提出首列元素地址进行二维调用的办法.可从来没有细想过这个问题,最近自己写了点代码测试下,虽 ...

  10. MVC5中使用jQuery Post 二维数组和一维数组到Action

    很久没有写了,最近在做一个MVC项目,这是我做的第一个MVC项目.之前可以说多MVC一点都不了解,今天把昨天遇到的一个问题记录下来.MVC大神就请飘过吧,跟我遇到同样问题的可以进来看看.遇到的第一个问 ...

随机推荐

  1. win8 IIS配置

    iis发展到win8已经到是iis8.0了.至于如何安装的,咱们接下来看.大体和iis6安装差别不大.iis8安装起来也是很方便的. 1.打开“控制面板”——“程序和功能”.如下图所示 2.点击“启用 ...

  2. VS unable to update auto-refresh path。。。。

    手工创建提示报错的路径,重新生成,成功

  3. Java06-java基础语法(五)数组

    Java06-java基础语法(五)数组 一.循环的嵌套 在一个循环体内部再含有一个或多个循环 强调:内循环全部做完以后再去执行下一次的外循环 int k = 0; for(int i = 0; i& ...

  4. 编码补充 daty 6

    ---恢复内容开始--- 1.  用id求内存地址 id 查询内存地址 name = 'alex' print(id(name)) li = [1,2,3] print(id(li)) 结果: 2. ...

  5. python 字符串 列表 字典 常用方法

    今天学习内容如下: 1.学习昨天练习题目的解题新方法 #1.使用while循环输入 1 2 3 4 5 6 8 9 10 ''' count = 0 while count < 10: coun ...

  6. Java图形界面——Border

    Swing编程边框(Border)的用法总结 Java进行客户端编程,使用了大量的Swing控件,由于系统默认的边框无法满足项目的要求,不得不自己更改控件的边框样式,网上找了不少资料,本文对Swing ...

  7. 安全概念:DMZ(非军事化区,隔离区)

    DMZ是英文“demilitarized zone”的缩写,中文名称为“隔离区”,也称“非军事化区”.它是为了解决安装防火墙后外部网络不能访问内部网络服务器的问题,而设立的一个非安全系统与安全系统之间 ...

  8. gdal source code c++ make windows

    下载源码 GDAL源代码下载地址:http://trac.osgeo.org/gdal/wiki/DownloadSource,或者安装svn从源代码服务器下载,svn地址是:http://svn.o ...

  9. $ each() 小结

    each()方法能使DOM循环结构简洁,不容易出错.each()函数封装了十分强大的遍历功能,使用也很方便,它可以遍历一维数组.多维数组.DOM, JSON 等等在javaScript开发过程中使用$ ...

  10. Go语言之讲解GOROOT、GOPATH、GOBIN

    Go是一门全新的静态类型开发语言,具有自动垃圾回收,丰富的内置类型,函数多返回值,错误处理,匿名函数,并发编程,反射等特性. go命令依赖一个重要的环境变量:$GOPATH GOPATH允许多个目录, ...