我设法从数据库中提取数据并将它们分配到名为$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
}
}
}
答案 0 :(得分:0)
不需要两个循环:
foreach ($StateaandName as $state => $name) {
$newarr[$state][$name] = $NameandAge[$name];
}
假设两个数组中的记录之间存在1:1匹配,这将起到作用。如果你的数组有不同的名称并且不匹配1:1;那么你需要这些循环中的两个,一个依次从每个数组开始工作。
答案 1 :(得分:0)
使用 array_merge()。是一个 PHP 函数,而不是合并两个数组,覆盖相同键的值,当键具有字符串值而不是数字值时,就像你的情况一样。