Пересечение ассоциативного массива из другого массива в php

У меня есть два массива, которые

$a = array( 
    array(
        'id' => 1,
        'name' => "Facebook" 
    ),
    array(
        'id' => 2,
        'name' => "Twitter" 
    ),
    array(
        'id' => 3,
        'name' => "Google" 
    ),
    array(
        'id' => 4,
        'name' => "Linkdin" 
    ),
    array(
        'id' => 5,
        'name' => "Github" 
    ),
);

И еще одно,

$b = array(1, 3, 5);

В соответствии со значением массива $b в качестве результата будет выбран идентификатор ассоциативного массива $a. Пересечение ассоциативного массива из другого массива в php Так что результат будет,

$result = $a = array( 
    array(
        'id' => 1,
        'name' => "Facebook" 
    ),
    array(
        'id' => 3,
        'name' => "Google" 
    ),
    array(
        'id' => 5,
        'name' => "Github" 
    ),
);

Вы пробовали что-нибудь до сих пор?

Nigel Ren 09.04.2019 17:51
Стоит ли изучать PHP в 2023-2024 годах?
Стоит ли изучать PHP в 2023-2024 годах?
Привет всем, сегодня я хочу высказать свои соображения по поводу вопроса, который я уже много раз получал в своем сообществе: "Стоит ли изучать PHP в...
Symfony Station Communiqué - 7 июля 2023 г
Symfony Station Communiqué - 7 июля 2023 г
Это коммюнике первоначально появилось на Symfony Station .
Оживление вашего приложения Laravel: Понимание режима обслуживания
Оживление вашего приложения Laravel: Понимание режима обслуживания
Здравствуйте, разработчики! В сегодняшней статье мы рассмотрим важный аспект управления приложениями, который часто упускается из виду в суете...
Установка и настройка Nginx и PHP на Ubuntu-сервере
Установка и настройка Nginx и PHP на Ubuntu-сервере
В этот раз я сделаю руководство по установке и настройке nginx и php на Ubuntu OS.
Коллекции в Laravel более простым способом
Коллекции в Laravel более простым способом
Привет, читатели, сегодня мы узнаем о коллекциях. В Laravel коллекции - это способ манипулировать массивами и играть с массивами данных. Благодаря...
Как установить PHP на Mac
Как установить PHP на Mac
PHP - это популярный язык программирования, который используется для разработки веб-приложений. Если вы используете Mac и хотите разрабатывать...
0
1
1 139
3
Перейти к ответу Данный вопрос помечен как решенный

Ответы 3

Ответ принят как подходящий

Простой один лайнер (более читаемый с 4 строками):

$result = array_filter(
    $a, 
    function($v) use ($b) { return in_array($v['id'], $b); }
);
foreach ($a as $key => $value) {
    if (in_array($value['id'], $b)) {
        $result[] = $value;
    }
}

Другой способ вычисления пересечения:

$result = array_intersect_key(array_column($a, null, 'id'), array_flip($b));
  • Переиндексировать $a по id
  • Переверните $b, чтобы получить значения в качестве ключей
  • Вычислить пересечение ключей

Другие вопросы по теме