首页 >后端开发 >PHP问题 > 正文

php怎么实现合并数组且key不变

原创2021-07-15 14:00:310793

方法:1、使用“+”运算符,语法“数组1 + 数组2”;2、使用array_merge_recursive()函数,当两个或更多个数组元素有相同的键名时,不会进行键名覆盖,而是将多个相同键名的值递归组成一个数组。

本教程操作环境:windows7系统、PHP7.1版,DELL G3电脑

一般PHP中合并两个数组都会使用array_merge()

例如:

$data1 = ['111' => 'aaa', '222' => 'bbb', '333' => 'ccc'];
$data2 = ['444' => 'ddd', '555' => 'eee', '666' => 'fff'];
$data = array_merge($data1, $data2);
var_dump($data);

得到结果:

array(6) {
  [0]=>
  string(3) "aaa"
  [1]=>
  string(3) "bbb"
  [2]=>
  string(3) "ccc"
  [3]=>
  string(3) "ddd"
  [4]=>
  string(3) "eee"
  [5]=>
  string(3) "fff"
}

可以看到使用array_merge()会重置key值,如果key值对我们有用,不想重置,可以使用"+"合并数组

$data1 = ['111' => 'aaa', '222' => 'bbb', '333' => 'ccc'];
$data2 = ['444' => 'ddd', '555' => 'eee', '666' => 'fff'];
$data = $data1 + $data2;
var_dump($data);

得到结果:

array(6) {
  [111]=>
  string(3) "aaa"
  [222]=>
  string(3) "bbb"
  [333]=>
  string(3) "ccc"
  [444]=>
  string(3) "ddd"
  [555]=>
  string(3) "eee"
  [666]=>
  string(3) "fff"
}

也可以使用array_merge_recursive函数,可以将一个或多个数组的单元合并起来,一个数组中的值附加在前一个数组的后面。返回作为结果的数组。

该函数是array_merge的升级版,在array_merge的基础上加入下面功能: 如果相同键值,为数字时和array_merge一样,重新索引;如果为字符串的时候后面不再覆盖前面,而是而是附加到后面,方式为递归追加;如:

 /* array_merge_recursive */
$jiaArr = array(
	'name1'=>'xiaoli',
	'name2'=>'xiaohua',
	'name3'=>'xiaoming',
	'1'=>'teacher',
);
 
$jiaBrr = array(
	'name1'=>'xiaolis',
	'name5'=>'xiaohuas',
	'name6'=>'xiaomings',
	'1'=>'teachers',
);
$jiaAll = array_merge_recursive($jiaArr,$jiaBrr);
var_dump($jiaAll);
 
/*浏览器output:
array(7) {
  ["name1"]=>
  array(2) {
    [0]=>
    string(6) "xiaoli"
    [1]=>
    string(7) "xiaolis"
  }
  ["name2"]=>
  string(7) "xiaohua"
  ["name3"]=>
  string(8) "xiaoming"
  [0]=>
  string(7) "teacher"
  ["name5"]=>
  string(8) "xiaohuas"
  ["name6"]=>
  string(9) "xiaomings"
  [1]=>
  string(8) "teachers"
}
*/

name1 两个数组都有,没有覆盖而是递归方式追加,1 数组键值仍被重新排序;

推荐学习:《PHP视频教程

以上就是php怎么实现合并数组且key不变的详细内容,更多请关注php中文网其它相关文章!

php中文网直播班

声明:本文原创发布php中文网,转载请注明出处,感谢您的尊重!如有疑问,请联系admin@php.cn处理

  • 相关标签:php 合并数组
  • 相关文章

    相关视频


    网友评论

    文明上网理性发言,请遵守 新闻评论服务协议

    我要评论
  • 专题推荐

    作者信息

    青灯夜游

    今天学习一小步,明天提升一大步

    最近文章
    jquery怎么修改元素css属性值212
    css使图片居中的方法有哪些166
    css如何让高度自适应534
    推荐视频教程
  • PHP开发基础之数组篇PHP开发基础之数组篇
  • 细说PHP(2021版)第一季细说PHP(2021版)第一季
  • 细说PHP(2021版)第二季细说PHP(2021版)第二季
  • 细说PHP(2021版)第三季细说PHP(2021版)第三季
  • 细说PHP(2021版)第四季细说PHP(2021版)第四季
  • 视频教程分类