我有两个来自SQL查询的数组,每个数组来自不同的数据库。由于无法将这两个SQL查询合并为一个查询以获得1个数组(由于某些限制),我不得不将这两个数组合并。问题是,我似乎无法使其发挥作用。
这是数组1:
echo '<ul id="friends">';
foreach($result as $friend => $value)
{
echo '<li><img src="'.$value['pic_square'].'" alt="" />'.$value['uid'].' ' . $value['name'] . '</li>';
}
echo '</ul>';
并输出:
这是数组2:
echo '<ul id="friends">';
while($value = mysql_fetch_array($query))
{
echo '<li> '.$value['fbid'] .' '. $value['userphone'] .'</li>';
}
echo '</ul>';
并输出:
我需要什么?我想合并这两个数组,以便数组2中的phonenr将添加到数组1的用户名后面。
示例输出应该是什么样的:
fbid和uid是相互链接的id,但不会显示在组合数组中。
希望有人知道怎么做!
亲切的问候,
莫里斯
答案 0 :(得分:1)
这是我能想到的最简单,最有效的方法。 foreach循环遍历您的第一个数组,基本上使用“uid”作为键添加新的键/值对。这样,您就可以在循环查看第二个查询结果时轻松找到它们。
<?php
// First query.
foreach ( $result as $key => $value )
{
// Add a new key/value pair in the array using the "uid" as the key and $value as the value.
$result[$value['uid']] = $value;
// Remove the previous key/value pair value.
unset($result[$key]);
}
// Second query.
while ( $value = mysql_fetch_array($query) )
echo sprintf('<li>%s %s %s</li>', $result[$value['fbid']]['pic_square'], $result[$value['fbid']]['name'], $value['userphone']);
答案 1 :(得分:-1)
由于数组集合名称不同(不同的列名称),我不确定直接合并是否有效。
$result = array_merge($result, $query);
print_r($result);
但你可以像下面那样解决。
从两个数组中给出循环并存储在第三个数组中,并对第三个数组执行必要的操作。