Замена элементов массива PHP

250
22 августа 2017, 14:28

Добрый день. У меня есть два массива. Покажу их куски, выведенные через print_r(), для наглядности: Первый - $pArr

Array
(
    [0] => Array
        (
            [c99ac205-72b5-4945-8043-ed69983d9333] => Пусковой ток аккумулятора
        )
    [1] => Array
        (
            [786f5089-24ab-41b2-80f2-e895bb3c9f55] => Индекс скорости автошины
        )
    [2] => Array
        (
            [492cccf6-cee5-4650-8459-cecad0fa2ea3] => Модель (автошины, автодиска, аккумулятора)
        )
    [3] => Array
        (
            [2f1880c0-9d29-4eed-8460-54daa2839f08] => Емкость аккумулятора
        )
    [4] => Array
        (
            [3f582fa2-7638-4c53-868c-372f5a7e3da4] => Диаметр автодиска
        )
    [5] => Array
        (
            [39cb3450-9fad-11e0-8b12-001cf0c7ea0e] => Размер
        )
    [6] => Array
        (
            [39cb3454-9fad-11e0-8b12-001cf0c7ea0e] => Производство
        )
    [7] => Array
        (
            [fbf5bbb1-4311-4ed0-8d8d-4839efe0184b] => Размер автошины - диаметр
        )
    [8] => Array
        (
            [2f38bd0b-d9a2-4577-920f-8c50c9f986b2] => Размер автошины - ширина
        )
    [9] => Array
        (
            [f5928459-6b0a-4e65-94eb-73e5a94605c3] => Назначение автошины
        )
    [10] => Array
        (
            [2e7798f8-8acb-446e-9a36-35a23f721e76] => Производитель
        )
    [11] => Array
        (
            [d7d1d16f-6c6f-41ee-a10a-920d395272f9] => Индекс нагрузки на ось автошины
        )
    [12] => Array
        (
            [4300d693-d759-471c-a3b0-8dd000451ea5] => Размер автошины - профиль
        )
    [13] => Array
        (
            [55558942-fe60-4325-ab8b-a32371194966] => Ширина автодиска
        )
    [14] => Array
        (
            [8eec56b2-5c47-4e3a-b638-c4ffe9849f7e] => Вылет автодиска
        )
    [15] => Array
        (
            [03f5629f-94fa-43db-b65a-32ca5ed0b72a] => Крепеж автодиска
        )
    [16] => Array
        (
            [7923f7b3-de8e-4dc6-bd22-3b93944e7f53] => Тип протектора автошины
        )
...

Второй массив - $gArr

Array
(
    [0] => Array
        (
            [Ид] => f4e9dd2f-ee11-11e6-93ba-ce730bee09f3
            [Наименование] => 295/80/22.5 Ellerbrock DE2M (UD2L) R (каркас Michelin) 
            [БазоваяЕдиница] => шт.
            [Группы] => Array
                (
                    [Ид] => 9930ec10-edea-11e6-afa5-1c6f65c3c754
                )
            [Картинка] => import_files/f4/f4e9dd2f-ee11-11e6-93ba-ce730bee09f3_1cac6b30-ef5a-11e6-93ba-ce730bee09f3.jpeg
            [ЗначенияСвойств] => Array
                (
                    [ЗначенияСвойства] => Array
                        (
                            [0] => Array
                                (
                                    [Ид] => c99ac205-72b5-4945-8043-ed69983d9333
                                    [Значение] => Array
                                        (
                                        )
                                )
                            [1] => Array
                                (
                                    [Ид] => 786f5089-24ab-41b2-80f2-e895bb3c9f55
                                    [Значение] => db3d1e6a-1c5d-11df-9276-001517645230
                                )
                            [2] => Array
                                (
                                    [Ид] => 492cccf6-cee5-4650-8459-cecad0fa2ea3
                                    [Значение] => 9930ec12-edea-11e6-afa5-1c6f65c3c754
                                )
                            [3] => Array
                                (
                                    [Ид] => 2f1880c0-9d29-4eed-8460-54daa2839f08
                                    [Значение] => Array
                                        (
                                        )
                                )
                            [4] => Array
                                (
                                    [Ид] => 3f582fa2-7638-4c53-868c-372f5a7e3da4
                                    [Значение] => Array
                                        (
                                        )
                                )
                            [5] => Array
                                (
                                    [Ид] => 39cb3450-9fad-11e0-8b12-001cf0c7ea0e
                                    [Значение] => Array
                                        (
                                        )
                                )
                            [6] => Array
                                (
                                    [Ид] => 39cb3454-9fad-11e0-8b12-001cf0c7ea0e
                                    [Значение] => Array
                                        (
                                        )
                                )
                            [7] => Array
                                (
                                    [Ид] => fbf5bbb1-4311-4ed0-8d8d-4839efe0184b
                                    [Значение] => 1dabdc5e-42de-11df-a7bb-0015172306b5
                                )
                            [8] => Array
                                (
                                    [Ид] => 2f38bd0b-d9a2-4577-920f-8c50c9f986b2
                                    [Значение] => 1dabdbfe-42de-11df-a7bb-0015172306b5
                                )
                            [9] => Array
                                (
                                    [Ид] => f5928459-6b0a-4e65-94eb-73e5a94605c3
                                    [Значение] => 342c1d6e-1cd0-11e6-a8f5-e069953c5ea7
                                )
                            [10] => Array
                                (
                                    [Ид] => c79b6c51-35e6-4f56-9916-5be7e4d3fdc2
                                    [Значение] => Array
                                        (
                                        )
                                )
                            [11] => Array
                                (
                                    [Ид] => 2e7798f8-8acb-446e-9a36-35a23f721e76
                                    [Значение] => 9930ec11-edea-11e6-afa5-1c6f65c3c754
                                )
                            [12] => Array
                                (
                                    [Ид] => d7d1d16f-6c6f-41ee-a10a-920d395272f9
                                    [Значение] => 342c1d6f-1cd0-11e6-a8f5-e069953c5ea7
                                )
                            [13] => Array
                                (
                                    [Ид] => 3e9a8dd0-e415-41af-a1d3-4fd8eb5ea721
                                    [Значение] => Array
                                        (
                                        )
                                )
                            [14] => Array
                                (
                                    [Ид] => 4300d693-d759-471c-a3b0-8dd000451ea5
                                    [Значение] => 365093a2-42de-11df-a7bb-0015172306b5
                                )
                            [15] => Array
                                (
                                    [Ид] => dd611e71-fac8-4790-a3c9-041196bfeb17
                                    [Значение] => Array
                                        (
                                        )
                                )
                            [16] => Array
                                (
                                    [Ид] => b06468a6-bc02-4130-a850-101680a6a117
                                    [Значение] => Array
                                        (
                                        )
                                )
                            [17] => Array
                                (
                                    [Ид] => 55558942-fe60-4325-ab8b-a32371194966
                                    [Значение] => Array
                                        (
                                        )
                                )
                            [18] => Array
                                (
                                    [Ид] => 8eec56b2-5c47-4e3a-b638-c4ffe9849f7e
                                    [Значение] => Array
                                        (
                                        )
                                )
                            [19] => Array
                                (
                                    [Ид] => 03f5629f-94fa-43db-b65a-32ca5ed0b72a
                                    [Значение] => Array
                                        (
                                        )
                                )
                            [20] => Array
                                (
                                    [Ид] => 7923f7b3-de8e-4dc6-bd22-3b93944e7f53
                                    [Значение] => 483b960c-d3c2-4535-806e-b1166653abb2
                                )
                        )
                )
...

А вот, как я делаю замену:

$itemsArr = array_replace_recursive($gArr, $pArr);
print_r($itemsArr);

array_replace_recursive — рекурсивно заменяет элементы первого массива элементами переданных массивов. Но у меня ни чего не происходит. В чём ошибка?

Спасибо.

Answer 1

В массиве $pArr 2e7798f8-8acb-446e-9a36-35a23f721e76 - это ключ массива, а в $gArr 2e7798f8-8acb-446e-9a36-35a23f721e76 - это значения для ключа "Ид". array_replace_recursive заменяет значения исходного массива на соответствующие по ключам значения. Делайте через foreach с поиском и заменой значений "Ид" в массиве $pArr.

READ ALSO
Как сделать чередование рекламы?

Как сделать чередование рекламы?

Как сделать чередование рекламы гугл адсенс и яндекс рся? те

263
PHP редирект для Яндекс.Метрика

PHP редирект для Яндекс.Метрика

Имеется сайт для которого запущена рекламная компания от Google AdwordsТак же на сайте стоит система сбора статистики Яндекс Метрика

187
Nordea soap xml

Nordea soap xml

Всем привет, не могу понять какого содержания должен быть xml файл чтобы получить удовлетворительный ответ от сервереВ доке нет никаких примеров...

184
Оптимальный ли конфиг php-fpm?

Оптимальный ли конфиг php-fpm?

Вебсервер: физический сервер состоящий из 6 ядер, 128 гб озу и ssd дискиЧасто жалуются на 502 во время обращения к сайту

175