PHP根据键值合并数组

我们现在来分析一下在PHP开发过程中,如何合并两个数组,并且将相同键值的元素合并在一起。

示例1

最简单的合并方式

  1. $a = [
  2. 1=>'a',
  3. 2=>'b',
  4. 3=>'c'
  5. ];
  6. $b = [
  7. 3=>'e',
  8. 4=>'f',
  9. 5=>'c'
  10. ];
  11. $c = $a+$b;
  12. print_r($c);

输出:

Array ( [1] => a [2] => b [3] => c [4] => f [5] => c )

分析:$a[3]覆盖了$b[3],当数组存在相同键值的元素时,前面的数组将会后面相同键值的数组元素

示例2

用foreach循环赋值的方法

  1. $a = [
  2. 1=>'a',
  3. 2=>'b',
  4. 3=>'c'
  5. ];
  6. $b = [
  7. 3=>'e',
  8. 4=>'f',
  9. 5=>'a'
  10. ];
  11. foreach ($b as $key => $val) {
  12. $a[$key] = $val;
  13. }
  14. print_r($a);

输出:

Array ( [1] => a [2] => b [3] => e [4] => f [5] => a )

分析:和示例1有点区别

用于做循环的数组$b将会覆盖数组$a的元素,而且只覆盖键值相同的元素

相关函数:

array_merge

array_intersect

array_intersect_ukey

array_intersect_uassoc

array_intersect_key

array_intersect_assoc