加入收藏 | 设为首页 | 会员中心 | 我要投稿 PHP编程网 - 黄冈站长网 (http://www.0713zz.com/)- 数据应用、建站、人体识别、智能机器人、语音技术!
当前位置: 首页 > 教程 > 正文

PHP合并两个数组的两种办法的异同

发布时间:2021-12-11 12:05:53 所属栏目:教程 来源:互联网
导读:本文讨论PHP合并数组的两种方式:$a+$b , array_merge($a,$b) 操作符+,在前一个数的基础上插入后一个数组,如果有相同的抛弃,而array_merge 是在前一个参数基础上插入后一个参数,如果有相同用的key 用后一个覆盖。 实例如下: php $a = array(a=1,b=2,c=3

本文讨论PHP合并数组的两种方式:$a+$b , array_merge($a,$b)
 
操作符+,在前一个数的基础上插入后一个数组,如果有相同的抛弃,而array_merge 是在前一个参数基础上插入后一个参数,如果有相同用的key 用后一个覆盖。
 
实例如下:
 
php > $a = array('a'=>'1','b'=>'2','c'=>'3');
php > $b = array('c'=>3,'d'=>'4','e'=>'5');
php > $c = $a+$b;
php > $d = array_merge($a,$b);
php > var_dump($c,$d);
array(5) {
  'a' =>
  string(1) "1"
  'b' =>
  string(1) "2"
  'c' =>
  string(1) "3"
  'd' =>
  string(1) "4"
  'e' =>
  string(1) "5"
}
array(5) {
  'a' =>
  string(1) "1"
  'b' =>
  string(1) "2"
  'c' =>
  int(3)
  'd' =>
  string(1) "4"
  'e' =>
  string(1) "5"
}
php > $e = array_merge($b,$a);
php > var_dump($e);
array(5) {
  'c' =>
  string(1) "3"
  'd' =>
  string(1) "4"
  'e' =>
  string(1) "5"
  'a' =>
  string(1) "1"
  'b' =>
  string(1) "2"
}
php > $f=$b+$a;
php > var_dump($f);
array(5) {
  'c' =>
  int(3)
  'd' =>
  string(1) "4"
  'e' =>
  string(1) "5"
  'a' =>
  string(1) "1"
  'b' =>
  string(1) "2"
}
 
当两边都是索引数组时,使用array_merge 可能会引起索引重置,如下面这种情况:
 
php > $a = array();
php > $b = array(1=>'data');
php > $c = $a+$b;
php > $d = array_merge($a,$b);
php > var_dump($c,$d);
array(1) {
  [1] =>
  string(4) "data"
}
array(1) {
  [0] =>
  string(4) "data"
 
}
 
所以,当使用+来合并两个索引数组,值可能会被丢弃,而array_merge就不会,会把重复的索引重置:
 
php > $a = array(1=>'one',2=>'two',3=>'three');
php > $b = array(3=>'three',4=>'four',5=>'five');
php > $c = $a+$b;
php > $d = array_merge($a,$b);
php > var_dump($c,$d);
array(5) {
  [1] =>
  string(3) "one"
  [2] =>
  string(3) "two"
  [3] =>
  string(5) "three"
  [4] =>
  string(4) "four"
  [5] =>
  string(4) "five"
}
array(6) {
  [0] =>
  string(3) "one"
  [1] =>
  string(3) "two"
  [2] =>
  string(5) "three"
  [3] =>
  string(5) "three"
  [4] =>
  string(4) "four"
  [5] =>
  string(4) "five"
}

(编辑:PHP编程网 - 黄冈站长网)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    热点阅读