如何在php中将多个查询结果合并为单个结果



我目前卡住了如何将多个查询结果合并为单个结果,如;

多个结果:

$a1 = array(
["name" => "coca-cola"], 
["name" => "sprite"], 
["name" => "pepsi"]
);
$a2 = array(
["color" => "red"], 
["color" => "green"], 
["color" => "blue"]
);
$a3 = array(
["price" => 2], 
["price" => 1], 
["price" => 4]
);

预期输出:

$res = array(
["name" => "coca-cola","color" => "red", "price" => 2],
["name" => "sprite","color" => "green", "price" => 1],
["name" => "pepsi","color" => "blue", "price" => 4]
);

试试这个办法。

$a1 = array(
["name" => "coca-cola"],
["name" => "sprite"],
["name" => "pepsi"]
);
$a2 = array(
["color" => "red"],
["color" => "green"],
["color" => "blue"]
);
$a3 = array(
["price" => 2],
["price" => 1],
["price" => 4]
);
$res = array();
for($i=0; $i<count($a1); $i++){
$res[] = array_merge($a1[$i],$a2[$i],$a3[$i]);
}

这里我们假设所有的$a1,$a3,$a3数组具有相同的维数。

又一个解决方案:

$result = array_map(
function($name, $color, $price) {
return array_merge($name, $color, $price);
},
$a1, $a2, $a3
);
print_r($result);

共享代码

Array
(
[0] => Array
(
[name] => coca-cola
[color] => red
[price] => 2
)
[1] => Array
(
[name] => sprite
[color] => green
[price] => 1
)
[2] => Array
(
[name] => pepsi
[color] => blue
[price] => 4
)
)

最新更新