PHP数组_slice()空长度导致空数组
我有一个数组,我想使用array_slice删除数组的第一个元素。命令如下:PHP数组_slice()空长度导致空数组,php,arrays,Php,Arrays,我有一个数组,我想使用array_slice删除数组的第一个元素。命令如下: $myArray = array_slice($myArray, 1); 现在,array_slice有第四个参数,当设置为true时,它保留数组键而不是重置它们。我需要将此选项设置为true 第三个参数是指定结果数组的长度。如果希望将数组切片到数组的末尾,而不是指定长度,则应该省略此参数 所以我试了一下: $myArray = array_slice($myArray, 1, NULL, true); 这将导致一
$myArray = array_slice($myArray, 1);
现在,array_slice有第四个参数,当设置为true时,它保留数组键而不是重置它们。我需要将此选项设置为true
第三个参数是指定结果数组的长度。如果希望将数组切片到数组的末尾,而不是指定长度,则应该省略此参数
所以我试了一下:
$myArray = array_slice($myArray, 1, NULL, true);
这将导致一个空数组。我做错了什么?有没有其他方法可以“省略”长度参数而不将其设置为NULL?因为将它设置为NULL似乎会完全清空我的数组
此外,我的解决方法是:
$myArray = array_slice($myArray, 1, count($myArray)-1, true);
但看起来我不该这么做
更新
这似乎是PHP5.1.6的一个bug,试试这个
$myArray = array_slice($myArray, 1, -1, true);
我刚刚测试了这段代码:
$myArray = array(
'test1' => 'test1',
'test2' => 'test2',
'test3' => 'test3',
'test4' => 'test4',
);
var_dump(array_slice($myArray, 1, null, true));
它只显示test2、test3和test4,对我来说效果很好
这是在5.2.13运行的。尝试升级PHP(我知道我也应该升级,但这是一个开发框)。你不能用它删除数组的第一个元素吗
编辑:看来你想保留数字键,没关系。这个问题被否决的具体原因是什么?serverfault的主题似乎很有可能偏离。哦,天哪。。。我真的以为我把这个贴在了网上所以。。。。对于拥有此权限的人,请将此主题移动到SONope,它将删除第一个元素,但会一直分割到数组中第二个到最后一个元素(第-1个元素)。所以在某种意义上,它只将数组的第一个和最后一个元素切掉。我使用的是PHP5.1.6,这是CentOS的标准版本。也许这是一个错误。我将尝试升级。@Jakobud:其中有一些小的后端口修复。请尝试最新的CentOS版本,如果没有,请尝试更高的PHP版本。我在CentOS上编写了一个升级到PHP5.2或5.3的超级简单程序,只需跳过nginx部分: