У меня есть два 2D-массива. Они оба содержат id
и другие, не связанные с этим вещи. Моя задача - объединить эти два массива, если id
соответствует!
Вот как они выглядят:
array(3) {
[0]=>
array(3) {
["id"]=>
string(3) "161"
["x"]=>
string(1) "foo"
["y"]=>
string(1) "bar"
}
}
[1]=>
array(3) {
["id"]=>
string(3) "164"
["x"]=>
string(1) "foo"
["y"]=>
string(1) "bar"
}
[2]=>
array(3) {
["id"]=>
string(3) "168"
["x"]=>
string(1) "foo"
["y"]=>
string(1) "bar"
}
}
array(2) {
[0]=>
array(3) {
["id"]=>
string(3) "161"
["z"]=>
string(1) "baz"
}
[1]=>
array(3) {
["id"]=>
string(3) "164"
["z"]=>
string(1) "baz"
}
И вот как должен выглядеть результат:
array(3) {
[0]=>
array(3) {
["id"]=>
string(3) "161"
["x"]=>
string(1) "foo"
["y"]=>
string(1) "bar"
["z"]=>
string(1) "baz"
}
}
[1]=>
array(3) {
["id"]=>
string(3) "164"
["x"]=>
string(1) "foo"
["y"]=>
string(1) "bar"
["z"]=>
string(1) "baz"
}
[2]=>
array(3) {
["id"]=>
string(3) "168"
["x"]=>
string(1) "foo"
["y"]=>
string(1) "bar"
}
}
И это то, что я имею до сих пор. Конечно, это не работает.
foreach ($rated_items as $item) {
foreach ($posts as $post) {
if ($post['id'] == $item['id']) {
$posts = array_merge($posts, $item); // Doesn't work at all.
}
}
}
Проблема в том, что я не знаю, как объединить текущий $post
в текущий $item
, а затем, оба из них, добавить в массив $posts
без получение дубликатов.
Спасибо за совет!