PHP:删除数组的第一个和最后一个项目

44 php arrays

假设我有这个数组:

 $array = array('10', '20', '30.30', '40', '50');
Run Code Online (Sandbox Code Playgroud)

问题:

从上面的数组中删除第一项的最快/最简单的方法是什么?
从上面的数组中删除最后一项的最快/最简单的方法是什么?

因此,结果数组仅包含以下值:

  • '20'
  • '30 0.30'
  • '40'

Dec*_*cko 67

使用array_slice是最简单的

$newarray = array_slice($array, 1, -1);
Run Code Online (Sandbox Code Playgroud)

如果输入数组中的元素少于3个,则输出数组将为空.

  • 你已将此标记为正确答案,但如果我是你,我实际上会检查它是否真的存在.此命令需要复制大部分内存.使用`array_ {shift,pop}`将避免复制该内存.编写一个脚本,在其中实例化一个非常大的数组,然后调用你的函数,直到数组有0(或1)个元素. (11认同)

Jan*_*nci 58

要删除第一个元素,使用array_shift删除最后一个元素,使用array_pop:

<?php    
$array = array('10', '20', '30.30', '40', '50');
array_shift($array);
array_pop($array);
Run Code Online (Sandbox Code Playgroud)


MDC*_*ore 9

array_pop($array); // remove the last element
array_shift($array); // remove the first element
Run Code Online (Sandbox Code Playgroud)


rye*_*guy 6

array_slice将是最快的,因为它是单个函数调用.

你这样使用它: array_slice($input, 1, -1);

但是,在执行此操作之前,请确保该数组中至少包含2个项目.


Jer*_*iko 5

从数组中删除第一个元素,并返回它:

array_shift($array);
Run Code Online (Sandbox Code Playgroud)

从数组中删除最后一个元素,并返回它:

array_pop($array);
Run Code Online (Sandbox Code Playgroud)

如果你不介意同时做这两件事,你可以使用:

array_shift($array,1,-1));
Run Code Online (Sandbox Code Playgroud)

同时敲掉第一个和最后一个元素.

检查array_push,array_poparray_slice文档:)


Kar*_*hik 5

检查此代码:

$arry = array('10', '20', '30.30', '40', '50');
$fruit = array_shift($arry);
$fruit = array_pop($arry);
print_r($arry);
Run Code Online (Sandbox Code Playgroud)