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;
}
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.
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()
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);
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