摘要:和号合并数组的区别先看栗子值覆盖情况只考虑字符串索引的键值对用后边数组的值覆盖掉前面数组中键名相同的值数字索引的值则不覆盖同时保留另外会重排两个数组的数字索引则不会。
array_merge和+号合并数组的区别
先看栗子:
array_merge$a = [51 => 12345]; $b = [10 => 5678]; $c = []; $c = array_merge($c,$a,$b); // Array ( [0] => 12345 [1] => 5678 )
$a = [51 => 12345]; $b = [51 => 5678]; $c = []; $c = array_merge($c,$a,$b); print_r($c); // Array ( [0] => 12345 [1] => 5678 )
$a = ["aa" => 12345]; $b = ["aa" => 5678]; $c = []; $c = array_merge($c,$a,$b); print_r($c);// Array ( [aa] => 5678 )
值覆盖情况: 只考虑字符串索引的键值对, 用后边数组的值覆盖掉前面数组中键名相同的值
数字索引的值则不覆盖,同时保留
另外: array_merge()会重排两个数组的数字索引,+则不会。
+号$a = [51 => 12345]; $b = [10 => 5678]; $c = []; $C = $a+$b; // Array ( [51] => 12345 [10] => 5678 )
$a = [51 => 12345]; $b = [51 => 5678]; $c = []; $c = $a+$b; print_r($c); // Array ( [51] => 12345 )
$a = ["aa" => 12345]; $b = ["aa" => 5678]; $c = []; $c = $a+$b; print_r($c);// Array ( [aa] => 12345 )
值覆盖情况: 既考虑数字索引的键值对,也考虑字符串索引的键值对, 用前边数组的值覆盖后边的键名相同的值.
文章版权归作者所有,未经允许请勿转载,若此文章存在违规行为,您可以联系管理员删除。
转载请注明本文地址:https://www.ucloud.cn/yun/28306.html
在PHP中可以使用array_merge函数和两个数组相加array+array的方式进行数组合并,但两者效果并不相同,下面为大家介绍两者具体的使用区别. 区别如下: 1. 当下标为数值时,array_merge()不会覆盖掉原来的值,但array+array合并数组则会把最先出现的值作为最终结果返回,而把后面的数组拥有相同键名的那些值抛弃掉(不是覆盖). 2. 当下标为字符时,array+ar...
摘要:除法运算符总是返回浮点数。取模运算符的结果和被除数的符号正负号相同。使用位运算符时要特别注意优先级。太空船运算符组合比较符当小于等于大于时分别返回一个小于等于大于的值。递增递减运算符不影响布尔值。 一、算术运算符 1. 概览 例子 名称 结果 $a + $b 加法 $a 和 $b 的和。 $a - $b 减法 $a 和 $b 的差。 $a * $b 乘法 $a 和 ...
摘要:如果输入的数组中有相同的字符串键名,则该键名后面的值将覆盖前一个值。语法很简单,返回值是合并后的数组并不总是你所期望的返回值。如下会产生一条,并且的返回值会是。要注意的是参数为怎么处理。 导语 array_merge 这个函数很实用,也很常用,但是它有一些特性,不注意的话就会造成麻烦。前几天修改同事代码的时候,就出现了这种问题,所以查些资料写下来。 定义与语法 array array_...
摘要:内置过滤器集合参照的和的从参数上看,的只支持同时合并两个数组,而的则可以同时合并多个,似乎是的比较好用。如果这个索引还会被用于输入的话比如下拉选项,数据就会出错。而的就是简单合并,不会重整索引。 Yii内置过滤器集合 参照 http://www.yiiframework.com/doc-2.0/yii-validators-validator.html#$builtInVali...
阅读 1863·2023-04-26 02:46
阅读 1995·2021-11-25 09:43
阅读 1140·2021-09-29 09:35
阅读 2095·2019-08-30 15:56
阅读 3418·2019-08-30 15:54
阅读 2627·2019-08-29 16:35
阅读 3116·2019-08-29 15:25
阅读 3282·2019-08-29 14:01