PHP中两个数组合并可以使用+或者array_merge 区别
PHP中两个数组合并可以使用+或者array_merge,但之间还是有区别的,而且这些区别如果了解不清楚项目中会要命的!
主要区别是两个或者多个数组中如果出现相同键名,键名分为字符串或者数字,需要注意
1)键名为数字时,array_merge()后面的值将不会覆盖原来的值,而是附加到后面,但+合并数组则会把最先出现的值作为最终结果返回,而把后面的数组拥有相同键名的那些值“抛弃”掉(不是覆盖)
2)键名为字符串时,array_merge()此时会覆盖掉前面相同键名的值,但+仍然把最先出现的值作为最终结果返回,而把后面的数组拥有相同键名的那些值“抛弃”掉(不是覆盖)。
主要区别是两个或者多个数组中如果出现相同键名,键名分为字符串或者数字,需要注意
1)键名为数字时,array_merge()后面的值将不会覆盖原来的值,而是附加到后面,但+合并数组则会把最先出现的值作为最终结果返回,而把后面的数组拥有相同键名的那些值“抛弃”掉(不是覆盖)
2)键名为字符串时,array_merge()此时会覆盖掉前面相同键名的值,但+仍然把最先出现的值作为最终结果返回,而把后面的数组拥有相同键名的那些值“抛弃”掉(不是覆盖)。
需要注意的是数组键形式 "数字" 等价于 数字
$a = array("a", "b"); $b = array("c", "d"); $c = $a + $b; print_r($a); print_r(array_merge($a, $b)); //输出: Array ( [0] => a [1] => b ) Array ( [0] => a [1] => b [2] => c [3] => d ) array 0 => string "a" (length=1) 1 => string "b" (length=1)array 0 => string "a" (length=1) 1 => string "b" (length=1) 2 => string "c" (length=1) 3 => string "d" (length=1) ++++++++++++++++++++++++++++++++++++++++++ $a = array( 0 => "a", 1 => "b"); $b = array( 0 => "c", 1 => "b"); $c = $a + $b; print_r($c); echo "<br />"; print_r(array_merge($a, $b)); //输出: Array ( [0] => a [1] => b ) Array ( [0] => a [1] => b [2] => c [3] => b ) array 0 => string "a" (length=1) 1 => string "b" (length=1)array 0 => string "a" (length=1) 1 => string "b" (length=1) 2 => string "c" (length=1) 3 => string "b" (length=1) ++++++++++++++++++++++++++++++++++++++++++ $a = array("a", "b"); $b = array( "0" => "c", 1 => "b"); $c = $a + $b; print_r($c); echo "<br />"; print_r(array_merge($a, $b)); //输出: Array ( [0] => a [1] => b ) Array ( [0] => a [1] => b [2] => c [3] => b ) array 0 => string "a" (length=1) 1 => string "b" (length=1)array 0 => string "a" (length=1) 1 => string "b" (length=1) 2 => string "c" (length=1) 3 => string "b" (length=1) ++++++++++++++++++++++++++++++++++++++++++ echo "4 <br />"; $a = array( 0 => "a", 1 => "b"); $b = array( 0 => "c", 1 => "b"); $c = $a + $b; print_r($c); echo "<br />"; print_r(array_merge($a, $b)); 输出: Array ( [0] => a [1] => b ) Array ( [0] => a [1] => b [2] => c [3] => b ) array 0 => string "a" (length=1) 1 => string "b" (length=1)array 0 => string "a" (length=1) 1 => string "b" (length=1) 2 => string "c" (length=1) 3 => string "b" (length=1) 对多个数组合并去重技巧 $a = array("1001","1002");$b = array("1002","1003","1004");$c = array("1003","1004","1005");$d = count(array_flip($a) + array_flip($b) + array_flip($c));
声明:该文观点仅代表作者本人,入门客AI创业平台信息发布平台仅提供信息存储空间服务,如有疑问请联系rumenke@qq.com。
- 上一篇:没有了
- 下一篇: PHP 验证整数或小数二位的正则