2011-05-30 24 views

Respuesta

283

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

http://php.net/array-combine

P. S.

* Tenga cuidado con valores similares. Por ejemplo:
array('one','two','one') puede ser problemático si se convierte como llaves duplicadas:
array('one'=>..,'two'=>..,'one'=>...)

0

tener cuidado, la solución propuesta con $a = array_combine($a, $a); no funcionará para los valores numéricos.

Yo, por ejemplo, quería tener un recuerdo array(128,256,512,1024,2048,4096,8192,16384) a ser las claves, así como los valores sin embargo PHP manual indica:

Si las matrices de entrada tienen las mismas claves de cadena, entonces el valor para cada clave sobrescribirá el anterior. Sin embargo, si las matrices contienen claves numéricas, el valor posterior no sobrescribirá el valor original, sino que se agregará.

Así que lo resolvió así:

foreach($array as $key => $val) { 
    $new_array[$val]=$val; 
} 
+2

Lo anterior es incorrecta - su cita proviene de la documentación de '' array_merge' y no array_combine'; Incluso probé con 'array_combine' y el último valor, incluso en matrices de teclas numéricas _siempre_ sobrescribe el anterior. – Brett

Cuestiones relacionadas