php,合并数组,合并一维数组,合并二维数组,合并多维数组
合并数组
例子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,合并数组,合并一维数组,合并二维数组,合并多维数组的更多相关文章
- PHP如何判断一个数组是一维的还是二维的
1.首先我们有一个PHP内置函数 count(); count(array,mode); array是数组,mode默认为0,1是递归的计数 <?php if(count($arr) == co ...
- lintcode: 把排序数组转换为高度最小的二叉搜索树
题目: 把排序数组转换为高度最小的二叉搜索树 给一个排序数组(从小到大),将其转换为一棵高度最小的排序二叉树. 样例 给出数组 [1,2,3,4,5,6,7], 返回 4 / \ 2 6 / \ / ...
- PHP如何判断一个数组是一维数组或者是二维数组?用什么函数?
如题:如何判断一个数组是一维数组或者是二维数组?用什么函数? 判断数量即可 <?php if (count($array) == count($array, 1)) { echo '是一维数组' ...
- Java学习-046-日志抓取合并后排序问题解决方案之 --- log4j 二次定制,实现日志输出添加延时10ms
自3月25至今,已经好久没有写学习日志了,今天在写日志抓取合并的小方法,发现抓取后的日志并米有依据系统执行的日志顺序排序.日志抓取排列逻辑如下: 通过日志标识,从各个日志文件(例如 use.log,e ...
- C# 数组、一维数组、二维数组、多维数组、锯齿数组
C# 数组.一维数组.二维数组.多维数组.锯齿数组 一.数组: 如果需要使用同一类型的对象,就可以使用数组,数组是一种数据结构,它可以包含同一类型的多个元素.它的长度是固定的,如长度未知的情况下,请 ...
- Python输入数组(一维数组、二维数组)
一维数组: arr = input("") //输入一个一维数组,每个数之间使空格隔开 num = [int(n) for n in arr.split()] //将输入每个数以空 ...
- 第3章 Java数组(上): 一维数组和二维数组
3.数组及排序算法(2天) 3.1 数组的概述 2课时 3.2 一维数组的使用 3课时 3.3 多维数组的使用 3课时 3.4 数组中涉及到的常见算法 3课时 3.5 Arrays工具类的使用 3课时 ...
- [PHP]快速实现:将二维数组转为一维数组
如何将下面的二维数组转为一维数组. $msg = array( array( 'id'=>'45', 'name'=>'jack' ), array( 'id'=>'34', 'na ...
- [C++]二维数组还是一维数组?
记得刚学习C++那会这个问题曾困扰过我,后来慢慢形成了不管什么时候都用一维数组的习惯,再后来知道了在一维数组中提出首列元素地址进行二维调用的办法.可从来没有细想过这个问题,最近自己写了点代码测试下,虽 ...
- MVC5中使用jQuery Post 二维数组和一维数组到Action
很久没有写了,最近在做一个MVC项目,这是我做的第一个MVC项目.之前可以说多MVC一点都不了解,今天把昨天遇到的一个问题记录下来.MVC大神就请飘过吧,跟我遇到同样问题的可以进来看看.遇到的第一个问 ...
随机推荐
- swift - 快速代码块 - 创建 tableview等一些控件 基本属性
1.创建tableview private lazy var cellId = "cellId" fileprivate lazy var tv : UITableView = { ...
- Mybatis常用标签使用
trim元素的主要功能是可以在自己包含的内容前加上某些前缀,也可以在其后加上某些后缀,与之对应的属性是prefix和suffix:可以把包含内容的首部某些内容覆盖,即忽略,也可以把尾部的某些内容覆盖, ...
- spring BeanUtils 工具实现对象之间的copy
一般我们会开发中会遇到返回用户信息的时候,不需要返回密码或者其他参数,这时候我们需要重新定义一个VO类去除不需要的参数,将原对象copy到VO类中 使用spring的BeanUtils可以实现对象的c ...
- 2017-2018-2 20165315 实验三《敏捷开发与XP实践》实验报告
2017-2018-2 20165315 实验三<敏捷开发与XP实践>实验报告 一.编码标准 编写代码一个重要的认识是"程序大多时候是给人看的",编程标准使代码更容易阅 ...
- django static 无法正确加载目录下的css
在static->web目录下添加CSS后该css文件一直报404错误,解决问题: 在setting.py文件添加: STATICFILES_DIRS = [ os.path.join(BASE ...
- Java遍历文件夹下的所以文件
利用Java递归遍历文件夹下的所以文件,然后对文件进行其他的操作.如:对文件进行重命名,对某一类文件进行重编码.可以对某一工程下的全部.java文件进行转码成utf-8等 代码如下,这里只对文件进行重 ...
- JSP使用sessionScope获取session值
场景:有些实体对象可以放到HttpSession对象中,保正在一个会话期间可以随时获取这个对象的属性,例如可以将登录用户的信息写入session,以保证页面随时可以获取并显示这个用户的状态信息.下面以 ...
- JFinal Web开发学习(八)后台集成H-ui-admin前端框架
h-ui-admin是一个很不错的前端框架h-ui实现的一个后台管理系统的前端. 1.在WebRoot目录下新建admin目录 2.下载h-ui-admin(当前最新是2.5版本)并解压至admin文 ...
- BCH/BCHABC/BCHSV分叉后重放机制小结
1. 不过,在谈重放保护之前,我们需要先了解一下重放攻击(又称重播攻击.回放攻击).实际上,重放攻击在互联网行业里就有过出现,也是计算机世界黑客最常用的攻击方式之一,它是指攻击者发送一个目的主机已接收 ...
- [z]重建索引
https://blog.csdn.net/funnyfu0101/article/details/52961485 所有执行的结果是脚本命令集合,可以用来创建索引: a)在plsql中使用execu ...