在php中使用公共密钥连接两个数组

时间:2014-01-21 15:10:09

标签: php sql arrays relational

我设法从数据库中提取数据并将它们分配到名为$NameandAge

的数组中
(Peter:12, Kim:32, Paul:23)

另一方面,我还从另一组数据库中提取了另一组数据,并将它们分配到数组$StateandName

(New York:Peter, Washington:Kim, Tennessee:Paul)

我要做的是将这两组数组合并为一个,使用Name作为键来创建这样的表:

New York Peter 12,
Washington Kim 32,
Tennessee Paul 23,

我有类似下面的内容,但这需要很长时间才能执行,让我超时。我正在寻找一种更好的方法来实现这一目标。

for(){       ///////////////loop array $StateandName
     for(){      ////////////loop array $NameandAge
          if($nameinfirstarr == $nameinsecondarr){
               echo .....;  ////////print out the State, Name and Age   
          }

      }
}  

2 个答案:

答案 0 :(得分:0)

不需要两个循环:

foreach ($StateaandName as $state => $name) {
    $newarr[$state][$name] = $NameandAge[$name];
}

假设两个数组中的记录之间存在1:1匹配,这将起到作用。如果你的数组有不同的名称并且不匹配1:1;那么你需要这些循环中的两个,一个依次从每个数组开始工作。

答案 1 :(得分:0)

使用 array_merge()。是一个 PHP 函数,而不是合并两个数组,覆盖相同键的值,当键具有字符串值而不是数字值时,就像你的情况一样。