如何从PHP中的指定索引中删除先前的所有元素?

w3o*_*ook 7 php arrays

我有一个数组,我想从当前指定的索引中删除先前的所有元素

例如:

$array = [0 => "a", 1 => "b", 2 => "c", 3=>"d", 4=>"e"];
Run Code Online (Sandbox Code Playgroud)

我有一个类似的索引3,所以我想删除以前的所有类似

0 => "a", 1 => "b", 2 => "c"
Run Code Online (Sandbox Code Playgroud)

而且只有

3=>"d", 4=>"e"
Run Code Online (Sandbox Code Playgroud)

在我的新阵列中。谁能帮我?

小智 6

$array = [0 => "a", 1 => "b", 2 => "c", 3=>"d", 4=>"e"];
$output = array_slice($array, 3);
Run Code Online (Sandbox Code Playgroud)

输出:

array(2) {
 [0]=> string(1) "d"
 [1]=> string(1) "e"
}
Run Code Online (Sandbox Code Playgroud)

另一种节省索引的解决方案

$array = [0 => "a", 1 => "b", 2 => "c", 3=>"d", 4=>"e"];
$output = array_slice($array, 3, null, true);
Run Code Online (Sandbox Code Playgroud)

输出:

array(2) {
 [3]=> string(1) "d"
 [4]=> string(1) "e"
}
Run Code Online (Sandbox Code Playgroud)

https://www.php.net/manual/zh/function.array-slice.php


Cid*_*Cid 5

您可以使用array_slice()

例如:

<?php
$array = [0 => "a", 1 => "b", 2 => "c", 3=>"d", 4=>"e"];

$startingPosition = 3;

//                                                   Preserve keys
//                                                        |
//               Your array     Delete from   Delete to   |
//                     |             |        (if null,   |
//                     |             |        to the end) |
//                     |             |            |       |
//                     v             v            v       v
$array = array_slice($array, $startingPosition , null, true);

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

输出:

array(2) {
  [3]=>
  string(1) "d"
  [4]=>
  string(1) "e"
}
Run Code Online (Sandbox Code Playgroud)