Задать вопрос
nastya97core
@nastya97core
Начинающий программист

Как из двух массивов образовать новый, взяв часть данных?

Здравствуйте. Есть 2 массива.
Первый:
Array
(
    [0] => Array
        (
            [0] => Apple
            [1] => big
        )

    [1] => Array
        (
            [0] => Orange
            [1] => medium
        )

    [2] => Array
        (
            [0] => Orange
            [1] => big
        )
)

второй:
Array
(
[entries] => Array
        (
            [0] => Array
                (
                    [name_item] => Apple
                    [price_item] => 70
                    [image_item] => img/apple45645.jpg
                    [_id] => 608e9eb364323555fb0002b2
                )
            [1] => Array
                (
                    [name_item] => Orange
                    [price_item] => 90
                    [image_item] => img/ORANGE777.jpg
                    [_id] => 6092bc293661377e0700007c
                )
        )
)


Мне нужно добавить в первый массив данные из второго. Меня интересуют поля price_item и image_item, которые соответствуют имени массива. Проблема в том, что я не знаю, как достать содержимое, относительно искомого объекта. Ладно если бы у меня был ключ и я бы по нему искала и доставала содержимое, а здесь, в данной ситуации, у меня ступор. Такое вообще возможно?

Итоговый массив я хотела получить вот такой:
Спойлер
Array
(
    [0] => Array
        (
            [0] => Apple
            [1] => big
            [price_item] => 70
            [image_item] => img/apple45645.jpg
        )

    [1] => Array
        (
            [0] => Orange
            [1] => medium
            [price_item] => 90
            [image_item] => img/ORANGE777.jpg
        )

    [2] => Array
        (
            [0] => Orange
            [1] => big
            [price_item] => 90
            [image_item] => img/ORANGE777.jpg
        )
)
  • Вопрос задан
  • 101 просмотр
Подписаться 1 Простой Комментировать
Решения вопроса 1
0xD34F
@0xD34F
Такое вообще возможно?

Нет, блин. Невозможно.

$items = array_combine(
  array_column($arr2['entries'], 'name_item'),
  $arr2['entries']
);

$keys = [ 'price_item', 'image_item' ];

foreach ($arr1 as $n) {
  foreach ($keys as $k) {
    $n[$k] = $items[$n[0]][$k];
  }

  $arr3[] = $n;
}

Ответ написан
Комментировать
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы