PHP合并数组并添加值
我需要帮助合并两个PHP数组: 阵列1:PHP合并数组并添加值,php,arrays,Php,Arrays,我需要帮助合并两个PHP数组: 阵列1: Array ( [0] => 2 [1] => 3 [2] => 4 [3] => 6 ) 阵列2: Array ( [0] => Array ( [id_sabor] => 2 [chocolate] => N ) [1] => Array ( [id_sabor] => 3 [chocolate] =>
Array
(
[0] => 2
[1] => 3
[2] => 4
[3] => 6
)
阵列2:
Array
(
[0] => Array
(
[id_sabor] => 2
[chocolate] => N
)
[1] => Array
(
[id_sabor] => 3
[chocolate] => S
)
[2] => Array
(
[id_sabor] => 4
[chocolate] => N
)
[3] => Array
(
[id_sabor] => 5
[chocolate] => S
)
[4] => Array
(
[id_sabor] => 6
[chocolate] => N
)
)
数组1上的值是活动对象。我需要在数组2或新数组中只保留那些与数组1中的
[id\u sabor]
匹配的数组(在本例中:2、3、4
和6
)。另外,在那些[chocolate]=S
的数组上添加一个新值:[costo_extra]=25
一种方法是使用并检查第一个数组是否包含id\u sabor
的值
$array1 = [2, 3, 4, 6];
$array2 = [
["id_sabor" => 1, "chocolate" => "N"],
["id_sabor" => 2, "chocolate" => "N"],
["id_sabor" => 3, "chocolate" => "S"],
["id_sabor" => 4, "chocolate" => "N"],
["id_sabor" => 5, "chocolate" => "S"],
["id_sabor" => 6, "chocolate" => "N"]
];
$array2 = array_reduce($array2, function($carry, $item) use ($array1){
if (in_array($item["id_sabor"], $array1)) {
if ($item["chocolate"] === "S") {
$item["costo_extra"] = 25;
}
$carry[] = $item;
}
return $carry;
});
只需在数组2上循环一次,如果s,则循环一些。您想创建什么?第二个数组包含数字和巧克力字母。预期的输出应该是多少?非常感谢,第四只鸟。这正是我需要的:)