网站首页 > java教程 正文
原文链接:
https://www.php.cn/php-ask-477246.html
php数组合并有4种方式,分别为:1、使用加号“+”运算符,语法“数组1+数组2+..”;2、使用array_push()函数;3、使用array_merge()函数;4、使用array_merge_recursive()函数。
本教程操作环境:windows7系统、PHP7.1版,DELL G3电脑
1、使用加号“+”运算符:
直接将两个数组的值合并成为一个数组;
$a = [1,2,3,'a'=>'a'];
$b = ['a'=>'b',4,5,'b'=>'c',6,7,'a'];
$c = $a + $b;
print_r($a);
print_r($b);
print_r($c);
//$a
Array
(
[0] => 1
[1] => 2
[2] => 3
[a] => a
)
//$b
Array
(
[a] => b
[0] => 4
[1] => 5
[b] => c
[2] => 6
[3] => 7
[4] => a
)
//$c
Array
(
[0] => 1
[1] => 2
[2] => 3
[a] => a
[b] => c
[3] => 7
[4] => a
)
采用"+"合并数组,如果键相同的情况下,前面的数组值会覆盖掉后面的数组值。
2、使用array_push()函数
将某个变量放入到另一个数组当中
$a = [1,'a'=>'aa',2,'b'=>'bb'];
$b = [1,'a'=>'aa',2,'b'=>'bb'];
print_r($a);
print_r($b);
array_push($a, $b);
print_r($a);
//$a
Array
(
[0] => 1
[a] => aa
[1] => 2
[b] => bb
)
//$b
Array
(
[0] => 1
[a] => aa
[1] => 2
[b] => bb
)
// array_push过后的$a
Array
(
[0] => 1
[a] => aa
[1] => 2
[b] => bb
[2] => Array
(
[0] => 1
[a] => aa
[1] => 2
[b] => bb
)
)
通过打印的值可以看出,变量进入数组后,对应的数字索引必然是当前数组中最小的数字索引+1(如果当前数组不存在数字索引,新增元素对应的索引为0)
3、使用array_merge()函数
直接将两个数组进行合并,两个数组键相同的情况,后面数组的值覆盖前面数组的值
$a = [1,'2'=>2,'a'=>'a','b'=>'b'];
$b = [1,'2'=>3,'a'=>'c','b'=>'d','c'=>'e'];
$c = array_merge($a,$b);
print_r($a);
print_r($b);
print_r($c);
//$a
Array
(
[0] => 1
[2] => 2
[a] => a
[b] => b
)
//$b
Array
(
[0] => 1
[2] => 3
[a] => c
[b] => d
[c] => e
)
//$c
Array
(
[0] => 1
[1] => 2
[a] => c
[b] => d
[2] => 1
[3] => 3
[c] => e
)
可以看出,两个数组键相同的情况,后面数组的值覆盖前面数组的值。但是对于数字索引或者数字字符串索引,会按照顺序进行重置(第一个数组的第一个数字索引元素从0开始依次填充)
4、使用array_merge_recursive()函数
合并数组,遇到相同的键将该键中值合并为一个子数组
$a = [1,'2'=>2,'a'=>'a','b'=>'b'];
$b = [1,'2'=>3,'a'=>'a','b'=>'d','c'=>'e'];
$c = array_merge_recursive($a,$b);
print_r($a);
print_r($b);
print_r($c);
//$a
Array
(
[0] => 1
[2] => 2
[a] => a
[b] => b
)
//$b
Array
(
[0] => 1
[2] => 3
[a] => a
[b] => d
[c] => e
)
//$c
Array
(
[0] => 1
[1] => 2
[a] => Array
(
[0] => a
[1] => a
)
[b] => Array
(
[0] => b
[1] => d
)
[2] => 1
[3] => 3
[c] => e
)
采用"array_merge_recursive"方法时,会将相同键的元素,整合成为一个新的数组,保持键名不变,作为合并数组($a与$b组合后的数组)的一个子元素。但是对于数字索引或者数字字符串索引,会按照顺序进行重置(第一个数组的第一个数字索引元素从0开始依次填充)。即使对应的数字索引相同,也不会将相同索引的元素整合成功一个子数组。
正确的sql语句:
1、SELECT own_id, dotime,note ,AES_DECRYPT(price,'66683821') AS jfprice,dNodeText FROM zb_yiduozhang2 WHERE left(`jSortID`,length('1001001'))= '1001001' AND own_id='66683821'
猜你喜欢
- 2025-05-11 全局数组的结构分析(全局数组和局部数组)
- 2025-05-11 10秒合并800个表,VSTACK就是这么厉害!
- 2025-05-11 VBA实现将批量Excel文件中的工作表合并成一个工作表
- 2025-05-11 C语言之strcat字符串拼接函数(c语言字符串拼接函数实现)
- 2025-05-11 这几个动态数组函数,简单又高效(动态数组的方法)
- 2025-05-11 数据格式的转换方法,HSTACK函数重建数组
- 2025-05-11 Java归并排序算法(技术每天进步一点)
- 2025-05-11 如何零基础学习VBA——数组函数介绍
- 2025-05-11 新增工作表数据自动汇总到总表怎么弄?会用vstack函数轻松搞定!
- 2025-05-11 字符拆分与合并,学会套路很简单(字符怎么合并)
你 发表评论:
欢迎- 05-11全局数组的结构分析(全局数组和局部数组)
- 05-1110秒合并800个表,VSTACK就是这么厉害!
- 05-11VBA实现将批量Excel文件中的工作表合并成一个工作表
- 05-11C语言之strcat字符串拼接函数(c语言字符串拼接函数实现)
- 05-11这几个动态数组函数,简单又高效(动态数组的方法)
- 05-11数据格式的转换方法,HSTACK函数重建数组
- 05-11Java归并排序算法(技术每天进步一点)
- 05-11如何零基础学习VBA——数组函数介绍
- 最近发表
- 标签列表
-
- java反编译工具 (77)
- java反射 (57)
- java接口 (61)
- java随机数 (63)
- java7下载 (59)
- java数据结构 (61)
- java 三目运算符 (65)
- java对象转map (63)
- Java继承 (69)
- java字符串替换 (60)
- 快速排序java (59)
- java并发编程 (58)
- java api文档 (60)
- centos安装java (57)
- java调用webservice接口 (61)
- java深拷贝 (61)
- 工厂模式java (59)
- java代理模式 (59)
- java.lang (57)
- java连接mysql数据库 (67)
- java重载 (68)
- java 循环语句 (66)
- java反序列化 (58)
- java时间函数 (60)
- java是值传递还是引用传递 (62)
本文暂时没有评论,来添加一个吧(●'◡'●)