Tableau copier les valeurs dans les clés en PHP [dupliquer]

Cette question a déjà une réponse ici:

J'ai ce tableau:

$a = array('b', 'c', 'd');

Existe-t-il une méthode simple pour convertir le tableau en ce qui suit?

$a = array('b' => 'b', 'c' => 'c', 'd' => 'd');
142
demandé sur Peter Mortensen 2011-05-30 15:14:20

2 réponses

$final_array = array_combine($a, $a);

Http://php.net/array-combine

P. S.

* soyez prudent avec des valeurs similaires. Exemple:
array('one','two','one') peut être problématique si converti comme des clés en double:
array('one'=>..,'two'=>..,'one'=>...)

311
répondu KingCrunch 2017-04-02 20:16:18

Attention, la solution proposée avec $a = array_combine($a, $a); NE FONCTIONNERA PAS pour les valeurs numériques.

Je voulais par exemple avoir une mémoire array(128,256,512,1024,2048,4096,8192,16384) pour être les clés ainsi que les valeurs mais le manuel PHP indique:

Si les tableaux d'entrée ont les mêmes clés de chaîne, la valeur ultérieure de cette clé écrasera la précédente. Si, cependant, les tableaux contiennent des clés numériques, la valeur ultérieure n'écrasera pas la valeur d'origine, mais sera ajoutée.

Donc je l'ai résolu comme ce:

foreach($array as $key => $val) {
    $new_array[$val]=$val;
}
-4
répondu sebke CCU 2017-04-02 19:49:51