PHP dizi string anahtarını değiştirin

3 Cevap php

Ben böyle PHP bir dizi var:

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

How could I replace the stringed array key 3? I tried:

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

ama bundan sonra böyle bakmak, işe yaramaz:

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

PHP version: 5.2.11

3 Cevap

Eğer diziye sayısal özellik adı ile nesneyi dönüştürdüğünüzde dize ile temsil sayısal endeksi alabilirsiniz en olası yolu.

Bu kapalı daha detaylı here

Benim için harika çalışıyor

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

İlk aslında bir sayısal indisli bir dizi anahtarı, ikinci bir string key yaratıyor. Sen type casting tutarlı davranış zorlamak için kullanabilirsiniz.

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

Güncelleştirme, bu PHP Sürüm 5.2.13 benim için aynı şekilde davranır:

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

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