Работа с массивами PHP
Есть два массива:
-
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 шт):
Автор решения: Алексей Шиманский
→ Ссылка
- Создаём пустой массив
- Запускаем цикл foreach по первому массиву
- Внутри первого цикла запускаем второй цикл по второму массиву
- Внутри второго цикла через
ifпроверяем, еслиIDиз первого цикла равно элементу второго - складируемNAMEв подготовленный массив - Делаем
break; - 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));