【问题标题】:merge array and replace values [closed]合并数组并替换值
【发布时间】:2014-01-03 13:27:41
【问题描述】:

我有两个数组。 首先,我们称之为array1:

array (size=8)
  0 => 
    array (size=6)
      'id' => string '2' (length=1)
      'domacin' => string 'Man City' (length=8)
      'gost' => string 'Liverpool' (length=9)
      'tip' => string '1' (length=1)
      'kvota' => string '1.8' (length=3)
      'status' => string 'Aktivan' (length=7)
  1 => 
    array (size=6)
      'id' => string '4' (length=1)
      'domacin' => string 'Inter' (length=5)
      'gost' => string 'Milan' (length=5)
      'tip' => string '1' (length=1)
      'kvota' => string '2.5' (length=3)
      'status' => string 'Aktivan' (length=7)

第二个,array2:

  'id' => string '2' (length=1)
  'domacin' => string 'Man City' (length=8)
  'gost' => string 'Liverpool' (length=9)
  'tip' => string '1' (length=1)
  'kvota' => string '1.8' (length=3)
  'status' => string 'Gubitan' (length=7)

我想合并这两个数组,但要使用第二个的值,其中第一个的 id 与第二个的 id 相等。

预期结果是:

array (size=8)
  0 => 
    array (size=6)
      'id' => string '2' (length=1)
      'domacin' => string 'Man City' (length=8)
      'gost' => string 'Liverpool' (length=9)
      'tip' => string '1' (length=1)
      'kvota' => string '1.8' (length=3)
      'status' => string 'Gubitan' (length=7)
  1 => 
    array (size=6)
      'id' => string '4' (length=1)
      'domacin' => string 'Inter' (length=5)
      'gost' => string 'Milan' (length=5)
      'tip' => string '1' (length=1)
      'kvota' => string '2.5' (length=3)
      'status' => string 'Aktivan' (length=7)

检查 index 为 0 的状态。它从 'Aktivan'(from array1) 更改为 'Gubitan' 就像我们在 array2 中一样。

怎么做?

【问题讨论】:

  • 你尝试过用...做这个吗?
  • 您是否尝试过类似... 呃... foreacharray_map + 回调 as shown in this dupe

标签: php arrays


【解决方案1】:
foreach ($firstArr as &$item) {
    if ($item['id'] == $secondArr['id']) {
        $item = $secondArr;
    }
}

【讨论】:

  • 谢谢 ;) 成功了!
【解决方案2】:

您可以使用两个 foreach 循环轻松做到这一点:

foreach( $array1 as $key1=>$element1 ){
    foreach( $array2 as $element2 ){
        if ($element1['id'] == $element2['id'])
            {
              $array1[$key1]['status'] = $element2['status'];
            }
    }
}

【讨论】:

  • 当我使用 var_dump($array1);我得到了这个:数组(大小=2)0 =>数组(大小=6)'id'=>字符串'2'(长度=1)...'状态'=>字符串'2'(长度=1) 1 => 数组 (size=6) 'id' => 字符串 '4' (length=1) ... 'status' => 字符串 'Aktivan' (length=7) 数组 (size=1) 0 => 数组(size=6) 'id' => string '2' (length=1) ... 'status' => string '2' (length=1) 所以status获取id值。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2023-03-22
  • 2019-09-27
相关资源
最近更新 更多