Работа с массивами PHP

Есть два массива:

  1. Array (
     [0] => Array
         (
             [ID] => 1
             [NAME] => aaa
         )
    
     [1] => Array
         (
             [ID] => 3
             [NAME] => bbb
         )
    
     [2] => Array
         (
             [ID] => 7
             [NAME] => ccc
         )
    
     [3] => Array
         (
             [ID] => 5
             [NAME] => www
         )
      )
    
Array
(
    [0] => 7
    [1] => 3
    [2] => 1
    [3] => 5
)

Как сделать результирующий массив, в котором, в случае совпадения ID из первого со значениями второго (7,3,1,5), будет хранится NAME?


Ответы (2 шт):

Автор решения: Алексей Шиманский
  1. Создаём пустой массив
  2. Запускаем цикл foreach по первому массиву
  3. Внутри первого цикла запускаем второй цикл по второму массиву
  4. Внутри второго цикла через if проверяем, если ID из первого цикла равно элементу второго - складируем NAME в подготовленный массив
  5. Делаем break;
  6. PROFIT
→ Ссылка
Автор решения: teran

возможно такая вариация нужна?

$arr1 = [['id' => 1, 'name' => "a"], 
         ['id' => 2, "name" => 'b'], 
         ['id' => 3, 'name' => "c"]
       ];
$arr2 = [1,3];

$tmp = array_column($arr1, 'name', 'id');
$result = array_intersect_key($tmp, array_flip($arr2));
→ Ссылка