Sostituisci la chiave di string dell'arrays PHP

Ho una matrix in PHP che sembra così:

$test = arrays('3' => 5); 

Come posso sostituire la chiave di arrays con string 3? Provai:

 $test['3'] = "New value" 

ma non funziona, sembra così dopo:

 arrays('3' => 5, 3 => "New value") 

Versione PHP: 5.2.11

Il modo più semplice per get l'indice numbersco rappresentato da una string è quando si converte l'object con il nome della properties; numbersca in arrays.

Più dettagliato questo coperto qui

Funziona alla grande per me

 $ php -r '$foo = arrays("3" => 5); $foo["3"] = 6; print_r($foo);' Array ( [3] => 6 ) 

Il primo è in realtà la creazione di una chiave di matrix indicizzata numberscamente, la seconda una chiave di string. Puoi utilizzare la trasmissione dei tipi per forzare un comportmento coerente.

 $test = arrays((string) '3' => 5); $test[(string) '3'] = "New value"; 

Aggiornamento, questi si comportno in modo identico per me su PHP versione 5.2.13:

 $test = arrays('3' => 5); echo '<pre>'.print_r($test,true).'</pre>'; $test['3'] = "New value"; echo '<pre>'.print_r($test,true).'</pre>'; $test = arrays((string) '3' => 5); echo '<pre>'.print_r($test,true).'</pre>'; $test[(string) '3'] = "New value"; echo '<pre>'.print_r($test,true).'</pre>';