Как преобразовать простой массив в ассоциативный массив?

Каков самый быстрый способ преобразования простого массива в ассоциативный массив в PHP, чтобы значения могли быть проверены в isset($array[$value]) ?

То есть самый быстрый способ сделать следующее преобразование:

 $array = array(1, 2, 3, 4, 5); $assoc = array(); foreach ($array as $i => $value) { $assoc[$value] = 1; } 

array_flip() делает именно это:

array_flip () возвращает массив в флип-порядке, то есть ключи от trans становятся значениями и значениями из ключей trans становятся.

Обратите внимание, что значения trans должны быть действительными ключами, то есть они должны быть целыми или строковыми . Предупреждение будет выдано, если значение имеет неправильный тип, и пара ключей / значений, о которых идет речь , не будет перевернута .

Если значение имеет несколько вхождений, последний ключ будет использоваться в качестве его значений, а все остальные будут потеряны.


Но кроме того, в PHP существует только один тип массива. Даже числовые («простые», как вы его называете) массивы ассоциативны.

Ваш код является точным эквивалентом:

 $assoc = array_fill_keys(array(1, 2, 3, 4, 5), 1); // or $assoc = array_fill_keys(range(1, 5), 1); 

array_flip() , хотя он может работать для вашей цели, это не то же самое.

PHP ref: array_fill_keys() , array_flip()