有没有可能使用像"123"
这样的数字字符串作为PHP数组中的键,而不将其转换为整数?
$blah = array('123' => 1);
var_dump($blah);
打印
array(1) {
[123]=>
int(1)
}
我想要
array(1) {
["123"]=>
int(1)
}
发布于 2011-09-20 05:24:58
如果你需要在php数据结构中使用一个数字键,一个对象就可以了。和对象保持顺序,所以你可以迭代。
$obj = new stdClass();
$key = '3';
$obj->$key = 'abc';
发布于 2013-03-14 23:37:04
我的解决方法是:
$id = 55;
$array = array(
" $id" => $value
);
空格char (前缀)是一个很好的解决方案,因为保留int转换:
foreach( $array as $key => $value ) {
echo $key;
}
您将看到55为int。
发布于 2015-03-20 21:16:20
我在尝试合并同时具有字符串键和整型键的数组时遇到了这个问题。很重要的一点是,整数也将作为字符串处理,因为这些是输入字段的名称(如鞋码等)。
当我使用$data = array_merge($data, $extra);
时,PHP会对键进行“重新排序”。在尝试进行排序时,整数键(我尝试使用6
- '6'
- "6"
甚至(string)"6"
作为键)从0重命名为n
...如果你仔细想想,在大多数情况下,这是你想要的行为。
您可以通过使用$data = $data + $extra;
来解决此问题。非常直截了当,但我一开始并没有想到^^。
https://stackoverflow.com/questions/4100488
复制相似问题