@prostovlad

Как удалить данные из массива?

добрый день. в массиве есть несколько записей с одинаковым идентификатором code_id и разной ценой, нужно что бы осталась одна запись с наименьшей ценой
у примеру есть
Array
(
    [0] => Array
        (
            [id] => 1
            [code_id] => 2222
            [price] => 100
        )
[1] => Array
        (
            [id] => 2
            [code_id] => 1111
            [price] => 100
        )
    [2] => Array
        (
            [id] => 3
            [code_id] => 2222
            [price] => 50
        )
[3] => Array
        (
            [id] => 4
            [code_id] => 1111
            [price] => 80
        )
    [4] => Array
        (
          [id] => 5
            [code_id] => 2222
            [price] => 200
        )
)

после удаления должно остаться только две записи
Array
(
[0]=>Array
        (
            [id] => 2
            [code_id] => 2222
            [price] => 50
        )
[1] => Array
        (
            [id] => 4
            [code_id] => 1111
            [price] => 80
        )
)
  • Вопрос задан
  • 97 просмотров
Решения вопроса 1
0xD34F
@0xD34F
$minPrices = array_values(array_reduce($arr, function($acc, $n) {
  $key = $n['code_id'];
  if (!isset($acc[$key]) || $acc[$key]['price'] > $n['price']) {
    $acc[$key] = $n;
  }

  return $acc;
}, []));
Ответ написан
Пригласить эксперта
Ответы на вопрос 2
Fockker
@Fockker Куратор тега PHP
Потомок старинного рода Ипатьевых-Колотитьевых
В цикле. Все операции над массивами производятся в цикле.
Создаёте новый пустой массив.
Потом берете берете исходный массив, перебираете его в цикле, и добавляете в новый данные в соответствии со своими запросами.
Ответ написан
AgentSmith72
@AgentSmith72
JS - это моё хобби
Ответ написан
Комментировать
Ваш ответ на вопрос

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

Войти через центр авторизации
Похожие вопросы