web-dev-qa-db-fra.com

Comment convertir un tableau simple en tableau associatif?

Quel est le moyen le plus rapide de convertir un tableau simple en tableau associatif dans PHP afin que les valeurs puissent être vérifiées dans la fonction isset($array[$value])?

C'est à dire. moyen le plus rapide de faire la conversion suivante:

$array = array(1, 2, 3, 4, 5);
$assoc = array();

foreach ($array as $i => $value) {
        $assoc[$value] = 1;
}
24
user773755

array_flip() fait exactement cela:

array_flip () renvoie un array dans l’ordre, les clés de trans deviennent des valeurs et les valeurs de trans deviennent des clés.

Notez que les valeurs de trans _ doivent être des clés valides, c’est-à-dire qu’elles doivent être soit entier ou chaîne . Un avertissement sera émis si une valeur a un type incorrect et si la paire clé/valeur en question ne sera pas inversée.

Si une valeur a plusieurs occurrences, la dernière clé sera utilisée comme valeur et toutes les autres seront perdues. 


Mais à part cela, il n'y a qu'un seul type de tableau en PHP. Même les tableaux numériques ("simples", comme vous les appelez) sont associatifs.

18
Felix Kling

Votre code est l'équivalent exact de:

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

array_flip(), bien que cela puisse fonctionner pour vous, ce n'est pas la même chose.

Réf. PHP: array_fill_keys() , array_flip()

32
Alix Axel

Si quelqu'un se demande toujours comment faire cela, il existe une solution plus simple en utilisant la fonction array_combine

$array = array(1, 2, 3, 4, 5);
$assoc = array_combine($array,$array);
0
A.M.N.Bandara

Utilisez simplement cette logique

$var1 = json_encode($arr1, JSON_FORCE_OBJECT);
$var1 = json_decode($var1);

où $ arr1 est le tableau qui doit être converti en tableau associatif . Ceci peut être obtenu avec json_encode et json_decode

0
Thyagi