php合并数组并保留键值的方法

合并数组一般会使用array_merge,但是结果会重新排列键名,覆盖原来的键。使用array_merge,如果是关联数组,合并后相同的键名会被后面的覆盖;如果是索引数组,键名相同不会覆盖,会重新索引。那如果要合并两个数组且不改变他们原来的键,怎么办?

解决

使用 “+” 运算符合并数组,可以保留数组的键值,如果合并的数组中含有相同的键值,后面的不会覆盖前面的键值(前面的优先)

1
2
3
4
5
6
7
8
php复制代码<?php
$form_data1 = array(11=>'A',12=>'B',13=>'C',14=>'D');
$form_data2 = array(25=>'B',26=>'A',27=>'D',28=>'C');

$result = $form_data1 + $form_data2;

print_r($result);
?>

输出:

1
2
php复制代码
Array ( [11] => A [12] => B [13] => C [14] => D [25] => B [26] => A [27] => D [28] => C )

laravel collect

如果是在laravel下,可以将数组变成collect实例,再使用->values(),输出结果的序号就是0开头的连续编号了

本文转载自: 掘金

开发者博客 – 和开发相关的 这里全都有

0%