$products = array(
[0] = array(
[product_id] => 102966
[price] => 11
)
[1] = array(
[product_id] => 102967
[price] => 22
)
)
$attributes= array(
[0] = array(
[product_id] => 102966
[attr_name] => Диагональ;Длительность ролика
[attr_value] => 2";1 мин, 2 мин, 3 мин, 5 мин
)
[1] = array(
[product_id] => 102967
[attr_name] => Выходы;Диагональ;Дополнительная информация
[attr_value] => HDMI;2.7";рабочие диапазоны
)
)
$products = [
[
'product_id' => 102966,
'price' => 11,
],
[
'product_id' => 102967,
'price' => 22,
]
];
$attributes = [
[
'product_id' => 102966,
'attr_name' => 'Диагональ;Длительность ролика',
'attr_value' => '2";1 мин, 2 мин, 3 мин, 5 мин',
],
[
'product_id' => 102967,
'attr_name' => 'Выходы;Диагональ;Дополнительная информация',
'attr_value' => 'HDMI;2.7";рабочие диапазоны',
],
];
$products = array_map(function($product) use ( $attributes ) {
$attribute = array_filter($attributes, function($attribute) use ( $product ) {
return $attribute['product_id'] === $product['product_id'];
});
return array_merge($attribute ? current($attribute) : [], $product);
}, $products);
print_r($products);
$products = [
[
'product_id' => 102966,
'price' => 11,
],
[
'product_id' => 102967,
'price' => 22,
]
];
$attributes = [
[
'product_id' => 102967,
'attr_name' => 'Диагональ;Длительность ролика',
'attr_value' => '2";1 мин, 2 мин, 3 мин, 5 мин',
],
[
'product_id' => 102966,
'attr_name' => 'Выходы;Диагональ;Дополнительная информация',
'attr_value' => 'HDMI;2.7";рабочие диапазоны',
],
];
$products = array_column($products, null, 'product_id');
$attributes = array_column($attributes, null, 'product_id');
foreach($products as &$product) {
$product += $attributes[$product['product_id']];
}
print_r($products);