代码之家  ›  专栏  ›  技术社区  ›  Juned Ansari

将同一列合并到两个不同的数组中[重复]

php
  •  0
  • Juned Ansari  · 技术社区  · 6 年前

    这个问题已经有了答案:

    我试图将同一列合并到两个不同的数组中, array2是array1的一部分,对于partyname列的某些更新,我使用array_列从主array1获取该列,然后对array2应用一些修改,然后希望再次合并它。 喜欢

    1:

    Array
    (
        [0] => Array
            (
                [StorePartyId] => 10462791
                [StoreId] => 4
                [PartyName] => AMAR MEDICO
                [PartyCode] => 6840
            )
    
        [1] => Array
            (
                [StorePartyId] => 10463839
                [StoreId] => 4
                [PartyName] => NEW SAVE MEDICINE SHOPEE
                [PartyCode] => 8236
            )
    )
    

    2:

    Array
    (
        [0] => Array
            (
                [PartyName] => AMAR MEDICO_updated
            )
    
        [1] => Array
            (
                [PartyName] => NEW SAVE MEDICINE SHOPEE_updated
            )
    )
    

    我可以通过循环来编程合并这两个数组。 但是要寻找一些PHP数组的内置函数。 我尝试了数组合并函数,但它不能解决这个问题。

    最终数组

    最终数组应该如下所示

    Array
    (
        [0] => Array
            (
                [StorePartyId] => 10462791
                [StoreId] => 4
                [PartyName] => AMAR MEDICO_updated
                [PartyCode] => 6840
            )
    
        [1] => Array
            (
                [StorePartyId] => 10463839
                [StoreId] => 4
                [PartyName] => NEW SAVE MEDICINE SHOPEE_updated
                [PartyCode] => 8236
            )
    )
    
    3 回复  |  直到 6 年前
        1
  •  3
  •   Andreas    6 年前

    使用array_replace_recursive替换递归数组。
    array_replace_recursive($Main_array, $Replacements);

    $new = array_replace_recursive($arr,$arr2);
    

    返回:

    array(2) {
      [0]=>
      array(4) {
        ["StorePartyId"]=>
        int(10462791)
        ["StoreId"]=>
        int(4)
        ["PartyName"]=>
        string(19) "AMAR MEDICO_updated"
        ["PartyCode"]=>
        int(6840)
      }
      [1]=>
      array(4) {
        ["StorePartyId"]=>
        int(10463839)
        ["StoreId"]=>
        int(4)
        ["PartyName"]=>
        string(32) "NEW SAVE MEDICINE SHOPEE_updated"
        ["PartyCode"]=>
        int(8236)
      }
    }
    

    https://3v4l.org/fjTlq

        2
  •  0
  •   Haresh Vidja    6 年前

    让我们假设

    当前数据存储在 $array1 ,更新的字段数据存储在 $array2

    foreach($array1 as $key=>&$arr){
        if(isset($array2[$key])){
            $arr=array_merge($arr,$array2[$key]);
        }
    }
    

    这里我用过 & 元素的传递引用的符号。 现在 $ARAY1 是具有更新值的最终数组

        3
  •  -1
  •   TuChiDo    6 年前

    我使用数组合并,它按您的意愿工作

    $a1=array("a"=>"red","b"=>"green");
    $a2=array("c"=>"blue","b"=>"yellow");
    print_r(array_merge($a1,$a2));
    

    结果:

    Array ( [a] => red [b] => yellow [c] => blue )