@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? буду благодарен за пример
  • Вопрос задан
  • 42 просмотра
Решения вопроса 1
E1ON
@E1ON
web, gamedev, anime, science
$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);
Ответ написан
Ваш ответ на вопрос

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

Войти через центр авторизации
Похожие вопросы
от 100 000 до 180 000 ₽
LAPTOP.RU Москва
от 150 000 до 190 000 ₽
LAPTOP.RU Кострома
от 25 000 до 65 000 ₽
08 мар. 2021, в 12:35
50000 руб./за проект
08 мар. 2021, в 11:59
15000 руб./за проект
08 мар. 2021, в 11:19
15000 руб./за проект