我有一个数组,我想使用array_slice删除数组的第一个元素。这是命令:
$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);
但似乎我不应该这样做......
更新
这似乎是PHP 5.1.6的错误
答案 0 :(得分:1)
我刚刚测试了这段代码:
$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(我知道我也应该这样做,但这是一个开发框)。
答案 1 :(得分:0)
试试这个
$myArray = array_slice($myArray, 1, -1, true);
答案 2 :(得分:0)
您是否也可以使用array_shift
删除数组的第一个元素?
编辑:似乎你想保留数字键,不用担心。