Возможно ли использовать цифровую строку, такую как "123"
, как ключ в массиве PHP, без преобразования в целое число?Числовая строка в виде массива в PHP
$blah = array('123' => 1);
var_dump($blah);
печатает
array(1) {
[123]=>
int(1)
}
Я хочу
array(1) {
["123"]=>
int(1)
}
Поскольку PHP свободно набирается, '' 123 '' == '123' практически для всех целей. Какая причина, по которой вы хотите, чтобы она была конкретно как строка (и наличие int было плохой)? – ircmaxell
Причина, которая приходит мне на ум, относится к функциям массива типа 'array_merge' *. Если входные массивы имеют одинаковые строковые ключи, то более позднее значение для этого ключа перезапишет предыдущий. Если, однако, массивы содержат числовые keys **, более позднее значение не будет перезаписывать исходное значение, но будет добавлено. "* – ficuscr
Другой пример, где числовые строки в виде ключей массива проблематичны: [' asort'] (http://php.net/manual/en /function.asort.php) – swenedo