jasonOk
@jasonOk
Легче болтать, чем код писать

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

array_flip() — меняет местами ключи и значения в массиве, но если будет array ("a" => 1, "b" => 1, "c" => 2) на выходе получится [1] => b [2] => c. Т.е. значение "а" пропадёт.
Мне же требуется, чтобы значения с одинаковыми ключами объединились и получилось [1]=>"a,b", [2]=>"c"
Я так думаю нужно сравнивать значения в массиве между собой, а затем, если они совпадают, брать ключ с помощью array_keys. Но как это реализовать?
  • Вопрос задан
  • 1361 просмотр
Пригласить эксперта
Ответы на вопрос 1
Fesor
@Fesor
Full-stack developer (Symfony, Angular)
простой форич вам в помощь:

$source = ['a' => 1, 'b' => 2, 'c' => 1];
$result = [];
foreach ($source as $key => $value) {
    if(array_key_exists($result, $value)) {
        if (is_array($result[$value])) {
             $result[$value][] = $key;
        } else {
             $result[$value] = [$result[$value], $key];
        }
    } else {
        $result[$value] = $key;
    }
}
Ответ написан
Ваш ответ на вопрос

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

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