假设我有这个数组:
$array = array('10', '20', '30.30', '40', '50');
问题:
如何最快/最简单地从上述数组中删除第一个项目?
如何最快/最简单地从上述数组中删除最后一个项目?
因此,结果数组仅包含以下值:
- '20'
- '30.30'
- '40'
假设我有这个数组:
$array = array('10', '20', '30.30', '40', '50');
问题:
如何最快/最简单地从上述数组中删除第一个项目?
如何最快/最简单地从上述数组中删除最后一个项目?
因此,结果数组仅包含以下值:
使用array_slice是最简单的方法
$newarray = array_slice($array, 1, -1);
如果输入的数组元素少于3个,则输出的数组将为空。
array_{shift,pop}
可以避免复制该内存。编写一个脚本,在其中实例化一个非常大的数组,然后调用你的函数,直到数组变为空(或只剩1个元素)。 - Robert Martinarray_shift
和 array_pop
的解决方案进行了基准测试,与 array_slice
的解决方案相比,使用 array_slice
要慢得多。 - Roham Rafii要删除第一个元素,请使用array_shift,要删除最后一个元素,请使用array_pop:
<?php
$array = array('10', '20', '30.30', '40', '50');
array_shift($array);
array_pop($array);
array_slice
有更好的性能。 - Roham Rafiiarray_pop($array); // remove the last element
array_shift($array); // remove the first element
array_slice
将起作用。 - Roham Rafii请查看以下代码:
$arry = array('10', '20', '30.30', '40', '50');
$fruit = array_shift($arry);
$fruit = array_pop($arry);
print_r($arry);
array_shift($array);
array_pop($array);
array_shift($array,1,-1));
array_shift
不接受三个参数,它只有一个参数。array_shift($array, 1, -1)
是错误的! - Roham Rafii<?php
$array = array("khan","jan","ban","man","le");
$sizeof_array = sizeof($array);
$last_itme = $sizeof_array-1;
//$slicearray= array_slice($array,'-'.$sizeof_array,4);// THIS WILL REMOVE LAST ITME OF ARRAY
$slicearray = array_slice($array,'-'.$last_itme);//THIS WILL REMOVE FIRST ITEM OF ARRAY
foreach($slicearray as $key=>$value)
{
echo $value;
echo "<br>";
}
?>
array_slice
会创建一个新的数组,因此速度非常慢。这个答案使用了它两次!! - Roham Rafii