php数组里的数字型key
看看这段php代码:
$arr1=array();
$arr1["8700"]="apple";
$arr1["5300"]="banana";
$arr2=array();
var_dump($arr1);
var_dump(array_merge($arr1,$arr2));
结果是:
array(2) {
[8700]=>
string(5) "apple"
[5300]=>
string(6) "banana"
}
array(2) {
[0]=>
string(5) "apple"
[1]=>
string(6) "banana"
}
可见,“8700”和“5300”都被php的数组当成了数字,于是在数组合并的时候对这一“编号”进行了调整。我试了$arr1[strval("8700")]="apple",没有效果,array就是不把8700当成字符串。最好只好在8700前面加了个空格。
最要命的是array_slice这么简单功能的函数也有这个毛病,擅自调整数组里数字型的key。看来以后要多加小心。
$arr1=array();
$arr1["8700"]="apple";
$arr1["5300"]="banana";
$arr2=array();
var_dump($arr1);
var_dump(array_merge($arr1,$arr2));
结果是:
array(2) {
[8700]=>
string(5) "apple"
[5300]=>
string(6) "banana"
}
array(2) {
[0]=>
string(5) "apple"
[1]=>
string(6) "banana"
}
可见,“8700”和“5300”都被php的数组当成了数字,于是在数组合并的时候对这一“编号”进行了调整。我试了$arr1[strval("8700")]="apple",没有效果,array就是不把8700当成字符串。最好只好在8700前面加了个空格。
最要命的是array_slice这么简单功能的函数也有这个毛病,擅自调整数组里数字型的key。看来以后要多加小心。
相关文章
- 超时问题调研 - 04 29, 2010
- php apc 问题 - 09 02, 2009
- fedora 9 小集 - 01 05, 2009
留言: