PHP数组使用一个列值组合

时间:2015-06-15 07:35:31

标签: php arrays

我正在尝试将两个阵列与一个公共列组合在一起。但是,并没有得到我想要的。请检查以下要求。

数组1

Array
(
[0] => stdClass Object
    (
        [fieldLabel] => fname
        [uuid] => 27478
    )

[1] => stdClass Object
    (
        [fieldLabel] => Lname
        [uuid] => 6103
    )

[2] => stdClass Object
    (
        [fieldLabel] => Country
        [uuid] => 7350
    )

[3] => stdClass Object
    (
        [fieldLabel] => check1
        [uuid] => 23155
    )

[4] => stdClass Object
    (
        [fieldLabel] => radio1
        [uuid] => 15664
    )

  )

数组2

 Array
 (
[0] => stdClass Object
    (
        [uuid] => 27478
        [value] => sai1
    )

[1] => stdClass Object
    (
        [uuid] => 6103
        [value] => sai2
    )

[2] => stdClass Object
    (
        [uuid] => 7350
        [value] => USA
    )

[3] => stdClass Object
    (
        [uuid] => 23155
        [value] => USA|India
    )

  )

我需要输出如下所示。两个阵列的“UUID”都很常见。如果第二个数组中没有值,则它应为空。

阵     (     [0] => stdClass对象         (             [fieldLabel] => FNAME             [uuid] => 27478             [value] => sai1         )

[1] => stdClass Object
    (
        [fieldLabel] => Lname
        [uuid] => 6103
        [value] =>sai2
    )

[2] => stdClass Object
    (
        [fieldLabel] => Country
        [uuid] => 7350
        [value] =>USA
    )

[3] => stdClass Object
    (
        [fieldLabel] => check1
        [uuid] => 23155
        [value] =>USA|India
    )

[4] => stdClass Object
    (
        [fieldLabel] => radio1
        [uuid] => 15664
    )

  )

请提供您的建议。我怎样才能实现。

2 个答案:

答案 0 :(得分:1)

您可以遍历这些数组并进行如下更改:

foreach ($array1 as &$a1val) {
   $value = 0;
   foreach ($array2 as $a2val) {
      if($a1val->uuid == $a2val->uuid) {
          $value = $a2val->value;
          break; 
      }
   }
   $a1val->value = $value;
}

P.S。 :

  1. &安培;用于通过引用更新$ array1。

答案 1 :(得分:0)

    foreach($arr1 as $key1 => val1){
            foreach($arr2 as $key2 => $val2){
                if($val1['uuid'] ==  $val2['uuid']){
                    $arr1[$key1]['value'] = $val2['value'];
                }
            }
       }
print_r($arr1); // this should give desire output