IvanIlyasov
@IvanIlyasov
Познаю мир

Как вычислить одинаковые значения в массиве и получить ключи этих совпадающих значений кроме исходного?

Дано:
Такой массив:
(
    [196] => 111
    [2248] => 444
    [2349] => 333
    [621] => 555
    [238] => 666
    [264] => 777
    [376] => 111
    [7174] => 999
    [602] => 111
    [495] => 444
)

Задача:
Найти одинаковые значения в массиве и получить их ключи, кроме первого.
То есть, одинаковые значения эти:
[196] => 111
[376] => 111
[602] => 111
и
[2248] => 444
[495] => 444

Первые ключи нам не нужны, нужно получить это:
(
    [1] => [376]
    [2] => [602]
    [3] => [495]
)

как это сделать?
  • Вопрос задан
  • 55 просмотров
Решения вопроса 1
0xD34F
@0xD34F
$vals = [];
$keys = [];

foreach ($arr as $key => $val) {
  if (isset($vals[$val])) {
    $keys[] = $key;
  }
  $vals[$val] = 1;
}
Ответ написан
Комментировать
Пригласить эксперта
Ваш ответ на вопрос

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

Войти через центр авторизации
Похожие вопросы