2个数组之间的关系

时间:2014-09-21 08:49:25

标签: php arrays

我有一个包含所有联系人的数组,我有一个包含所有组的数组。 如何将http://www.google.com/m8/feeds/groups/j**/base/3166d58a8c**25替换为联系人数组中的组名YouTube? 由于Google Contacts API v3确实将组名存储为ID,因此我想将此ID替换为该组的名称。

E.g。

数组:

array(2) {
  [0]=>
  array(3) {
    ["value"]=>
    string(87) "http://www.google.com/m8/feeds/groups/**/base/***b87ad92"
    ["name"]=>
    string(4) "Family"
    ["label"]=>
    string(4) "Family"
  }
  [1]=>
  array(3) {
    ["value"]=>
    string(87) "http://www.google.com/m8/feeds/groups/j**/base/3166d58a8c**25"
    ["name"]=>
    string(7) "YouTube"
    ["label"]=>
    string(7) "YouTube"
  }
}

阵列联系人:

array(250) {
  [0]=>
  array(8) {
    ["value"]=>
    string(15) "X Y"
    ["name"]=>
    string(15) "X Y"
    ["email"]=>
    string(25) "blabla@gmail.com"
    ["phone"]=>
    string(10) "044564"
    ["group"]=>
    string(87) "http://www.google.com/m8/feeds/groups/j**/base/3166d58a8c**25"
    ["phonework"]=>
    string(10) "0479//804"
    ["address"]=>
    string(28) "55222 City"
    ["label"]=>
    string(15) "Bla"
      }
  ......
    }

最终输出将是:

array(250) {
  [0]=>
  array(8) {
    ["value"]=>
    string(15) "X Y"
    ["name"]=>
    string(15) "X Y"
    ["email"]=>
    string(25) "blabla@gmail.com"
    ["phone"]=>
    string(10) "044564"
    ["group"]=>
    string(87) "YouTube"
    ["phonework"]=>
    string(10) "0479//804"
    ["address"]=>
    string(28) "55222 City"
    ["label"]=>
    string(15) "Bla"
      }
  ......
    }

1 个答案:

答案 0 :(得分:0)

只需创建一个嵌套循环。首先循环接触(将被覆盖),然后在其中循环接收组。在内部循环内部,只需进行相等比较:

foreach($contacts as &$contact) {
                  // ^ reference
    foreach($groups as $group) {
        if($contact['group'] == $group['value']) {
            $contact['group'] = $group['name'];
        }
    }
}