[关闭]
@Chiang 2020-08-29T17:29:33.000000Z 字数 460 阅读 543

数组比较与重组

2020-08 工作总结


业务场景

我们有$a, $b 两个数组; 我们以 $a 为参考点
count($b) > count($a) 时 我们把 $a$b 不对应的元素取出来添加到 $a 数组中,组成新的数组 $c;其他情况直接取 $a 即可.

  1. $a = [
  2. ['key' => 1, 'val' => 'a值1'],
  3. ['key' => 2, 'val' => 'a值2'],
  4. ];
  5. $b = [
  6. ['key' => 1, 'val' => 'b值1'],
  7. ['key' => 2, 'val' => 'b值2'],
  8. ['key' => 3, 'val' => 'b值3'],
  9. ];

解决方案

  1. $newA = array_column($a, null, 'key');
  2. $newB = array_column($b, null, 'key');
  3. $diffArr = array_diff_key($newB, $newA);
  4. foreach ($diffArr as &$value) {
  5. $value['val'] = '';
  6. }
  7. $c = array_merge($a, $diffArr);

参考资料:
array_diff_key

添加新批注
在作者公开此批注前,只有你和作者可见。
回复批注