Прошу помощи гуру PHP
Есть большой массив свойств в котором нужно заменить часть элементов на элементы из этого же массива. В свойстве "Новая сортировка" есть данные которые нужно засеменить, т.е. ищем ID элемента 185 и устанавливаем SORT 100 и тд
Вот часть массива.
Array
(
[0] => Array
(
[ID] => 187
[NAME] => Новая сортировка
[CODE] => NEW_SORT
[SORT] => 100
[VALUE] => Array
(
[0] => 185=100
[1] => 173=200
[2] => 172=300
)
)
[1] => Array
(
[ID] => 180
[NAME] => Код цвета
[CODE] => COLOR
[SORT] => 97
[VALUE] => 4956175d-8376-11e9-9251-e41f13e5248e
)
[3] => Array
(
[ID] => 172
[NAME] => Столы
[CODE] => TABLE
[SORT] => 140
[VALUE] => Array
(
[0] => 624
[1] => 628
[2] => 626
[3] => 614
[4] => 630
)
[4] => Array
(
[ID] => 185
[NAME] => Тумбы
[CODE] => TUMBA
[SORT] => 510
[VALUE] => Array
(
[0] => 651
[1] => 616
[2] => 622
)
[5] => Array
(
[ID] => 173
[NAME] => Шкафы
[CODE] => WARDROBE
[SORT] => 520
[VALUE] => Array
(
[0] => 618
[1] => 620
)
Я сначала получаю новый массив, свойств которые нужно заменить
$sort_arr_id = array();
foreach ($arResult["DISPLAY_PROPERTIES"] as $key => $value2) {
if($value2['CODE'] == 'ADD_SORT_ID') $sort_arr_id = array($value2['VALUE']);
}
print_r($sort_arr_id);
получаю
Array
(
[0] => Array
(
[0] => 185=100
[1] => 173=200
[2] => 172=300
)
)
т.е. у элемента с ID 185 нужно установить сортировку SORT 100, у 173 сортировку 200, у 172 сортировку 300.
Преобразовываю текст в массив
foreach ($sort_arr_id as $key => $value2) {
foreach ($value2 as $key2 => $value3) {
$arr = explode("=", $value3);
$sort_arr_id[$key2] = array('ID' => $arr['0'], 'SORT' => $arr['1']);
}
}
и пытаюсь заменить данные
foreach ($sort_arr_id as $value5) {
foreach ($arResult["DISPLAY_PROPERTIES"] as $value6) {
if($value6['ID'] == $value5['ID']) {
$new_arr_arr[] = ['ID' => $value5['ID'], 'SORT' => $value5['SORT']];
}
}
}
Что я делаю не так?
Пробовал клеить array_merge но он просто дописывал в конец массив данные их которого нужно вписать.
Может есть способ проще?