@nvjfdvjnkn

Как отфильтровать многомерный массив?

$array1 = array(
  array(
    "id" => 123,
    "title" => "aaa"),
  array(
    "id" => 456,
    "title" => "bbb"),
  array(
    "id" => 789,
    "title" => "ccc"),
  array(
    "id" => 101,
    "title" => "ddd")
);

$array2 = array(123, 789);


Массив array2 состоит из id товаров, которые нужно получить из массива array1
В итоге нужно либо получить новый массив, либо удалить лишнее из array1

UPDATE:

Массив array2 выглядит так:
$array2 = array(
  array(
    3 => 123),
  array(
    4 => 456)
);
  • Вопрос задан
  • 1971 просмотр
Решения вопроса 1
0xD34F
@0xD34F
$ids = array_map(function($n) {
  return array_values($n)[0];
}, $array2);

$array1 = array_filter($array1, function($n) use($ids) {
  return in_array($n['id'], $ids);
});
Ответ написан
Пригласить эксперта
Ответы на вопрос 2
@RidgeA
Задача тривиальна и есть множество путей решения.
Что конкретно в твоем решении не работает?
Ответ написан
можно использовать array_filter
$result = array_filter($array1, function ($item) use ($array2) {
   return in_array($item['id'], $array2);
});


ну либо в цикле проверяйте каждый элемент из первого массива
Ответ написан
Ваш ответ на вопрос

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

Войти через центр авторизации
Похожие вопросы
YCLIENTS Москва
от 200 000 до 350 000 ₽
Ведисофт Екатеринбург
от 25 000 ₽
ИТЦ Аусферр Магнитогорск
от 100 000 до 160 000 ₽