合并数组

例子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. lendinghome oa 准备

    hardcode版本 估计只能过一个吧 import java.util.*; public class NextServer { Map<Integer, Integer> server ...

  2. xcode 更新svn/Git后发现模拟器显示No Scheme问题

    这个是由于XXX..xcodeproj包中xcuserdata文件夹中user.xcuserdatad文件夹名字的问题...user.xcuserdatad文件夹的名字,不是当前用户的名字,就会显示n ...

  3. 关于vue搭建项目运行出行的错误问题,简直是大坑啊

    解决方法简单粗暴,非常简单粗暴 直接在根目录新建一个test文件夹就可以搞定,用来放置配置文件的 折腾了我一上午啊

  4. Python中list,tuple,dict,set的区别和用法(转)

    原文地址:http://www.cnblogs.com/soaringEveryday/p/5044007.html Python语言简洁明了,可以用较少的代码实现同样的功能.这其中Python的四个 ...

  5. datepicker动态初始化

    datepicker 初始化动态表单的input,需要调用jquery的on方法来给未来元素初始化. //对动态添加的时间文本框进行动态初始化 $('table').on("focus&qu ...

  6. Vue 动态绑定类名

    <!DOCTYPE html> <html> <head> <meta charset="utf-8"> <title> ...

  7. Jenkins与SVN持续集成

    官网下载Jenkins&SVN&eclipse,版本号没要求,建议使用最新稳定版本 登录Jenkins:http://localhost:8080 登录SVN:http://local ...

  8. c++中“箭头(->)”和“点号(.)”操作符的区别

    首先介绍一下C++中的结构.对于一个结构: struct MyStruct { int member_a; }; 如果有个变量MyStruct s,那么使用其中的成员元素时可以用: s.member_ ...

  9. Redis单机安装

    安装过程 安装环境 ubuntu14.04 server wget http://download.redis.io/releases/redis-3.2.5.tar.gz tar -xzvf ./r ...

  10. 大数乘法java版

    import java.util.*; import java.math.*; public class NumMul{ public static void main(String args[]){ ...