Задать вопрос
@ganjo888

Как слить два массива по id с одинаковыми значениями?

есть два массива
$categories = [
  6 => "Категория",
  8 =>' Вторая категория'
];
$users= [
  11 => 8
  19 => 6
  20 => 8
  21 => 6
  26 => 6
];
Хочу получить
$users = [
  11 => 'Вторая категория',
  19 => 'Категория',
  20 => 'Вторая категория',
  21 => 'Категория',
  26 => 'Категория'
];

пробовал через array_merge но он только добавляет в конец, нужно ли проходится с помощью foreach по $users? буду благодарен за пример
  • Вопрос задан
  • 99 просмотров
Подписаться 1 Простой Комментировать
Решения вопроса 1
E1ON
@E1ON
Programming, Gamedev, VR
$output = array_map(function ($value) use ($categories) {
    return $categories[$value] ?? null;
}, $users);


$output = array_map(fn ($value) => $categories[$value] ?? null, $users);
Ответ написан
Пригласить эксперта
Ответы на вопрос 1
nokimaro
@nokimaro
Меня невозможно остановить, если я смогу начать.
<?php
$categories = [
  6 => "Категория",
  8 => 'Вторая категория'
];

$users= [
  11 => 8,
  19 => 6,
  20 => 8,
  21 => 6,
  26 => 6,
];

foreach($users as &$val) 
{
    $val = $categories[$val] ?? $val;
}
unset($val);

print_r($users);
Ответ написан
Комментировать
Ваш ответ на вопрос

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

Похожие вопросы