Я пытаюсь сравнить два массива и извлечь некоторую информацию об одном из них и сохранить его в другом массиве (3-й). Структура этих двух массивов выглядит следующим образом:Сравнение массивов в php
Array(
[0] => stdClass Object
(
[Id] => 123
[Size] => small
[Color] => yellow
)
[1] => stdClass Object
(
[Id] => 456
[Size] => large
[Color] => red
)
[2] => stdClass Object
(
[Id] => 789
[Size] => medium
[Color] => blue
)
)
Array
(
[0] => stdClass Object
(
[Id] => 456
[Size] => large
[Color] => red
[Available] => true
)
[1] => stdClass Object
(
[Id] => 123
[Size] => small
[Available] => false
)
[2] => stdClass Object
(
[Id] => 789
[Size] => medium
[Color] => blue
[Available] => true
)
)
В примере, мне нужно хранить свойство «доступный» только если идентификатор из этих массивов равны.
То, что я пытался сделать:
for (var $i = 0; $i < count($arrayA); $i++) {
if ($ArrayA[$i]->Id == $arrayB[$i]->Id) {
$getAvailable = $arrayB[$i]->Available;
}
}
Проблема:
Поскольку мы можем иметь ситуацию, когда свойство идентификатора в массиве А, позиция 0 находится в другом положении, в массив B, который может иметь другую структуру, я понятия не имею, как я могу получить доступ к информации, которая мне нужна (доступна), из одного массива, сравнивающего идентификаторы ArrayB и ArrayA.
Я извиняюсь, если я не объяснить это лучше, потому что это немного трудно описать словами эту ситуацию, но дайте мне знать, если у вас есть какие-либо вопросы, и, пожалуйста, помогите мне найти решение :)
Желаемая массив должен выглядеть следующим образом:
Array(
[0] => stdClass Object
(
[Id] => 123
[Size] => small
[Color] => yellow
[Available] => false
)
Что желаемая * новый * массив выглядеть ?? –
Я отредактировал вопрос и добавил эту информацию в конце. @Dagon –
ах ок, это имеет смысл. любое изменение получения идентификатора в качестве ключа для начала? если не его цикл в массиве, выполняющий поиск на другом для каждого id –