Как в данном массиве найти элемент и поменять соседнее значение? т.е. находим элемент [ID] => 172 и меняем [SORT] => 140 на [SORT] => 200
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
)
array_replace затирает весь массив, оставляя только тот участок что изменил
С помощью цикла перебора массива:
foreach ($data as $key => $array) {
if ($array['ID'] == 172) {
$data[$key]['SORT'] = 200;
}
}
С использованием array_map() и передачей в пользовательскую ф-ю данных о новых SORT-значениях:
<?php
$sort = [
180 => 300,
172 => 200
];
$input = [
[
'ID' => 187,
'SORT' => 100,
'NAME' => 'Новая сортировка',
'CODE' => 'NEW SORT',
'VALUE' => ['185=100', '173=200', '172=300']
],
[
'ID' => 180,
'SORT' => 97,
'NAME' => 'Код цвета',
'CODE' => 'COLOR',
'VALUE' => '4956175d-8376-11e9-9251-e41f13e5248e'
],
[
'ID' => 172,
'SORT' => 140,
'NAME' => 'Столы',
'CODE' => 'TABLE',
'VALUE' => [624, 628, 626, 614, 630]
]
];
$output = array_map(
function ($itm) use ($sort) {
$id = $itm['ID'];
if (isset($sort[$id])) {
$itm['SORT'] = $sort[$id];
}
return $itm;
},
$input
);
var_dump($output);
DEMO
Не вижу ни одной причины не использовать простой for
:
$searchId = 172;
$replaceSortValue = 200;
for ($i = 0; $i < count($array); $i++) {
if ($array[$i]['ID'] == $searchId) {
$array[$i]['SORT'] = $replaceSortValue;
break;
}
}
Современные решения для бизнеса: как облачные и виртуальные технологии меняют рынок
Виртуальный выделенный сервер (VDS) становится отличным выбором
У меня есть форма, где надо писать счет-фактуру, мне нужно чтобы когда я писал на поле СЧ-111111/11 мне выводил этот счет из api
Что нужно поменять в данном коде, чтоб картинка 156png была слева а не внизу? Заранее благодарен
Не могу понять как правильно сделать регулярное выражение для следующего текста:
На сервере хранится node-js файл, который при обращении с нужными параметрами выдаёт html страницу с необходимой информациейПри обращении через...