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

how merge multiple query result into single result in 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);

share PHP code

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
        )

)