3

我在 PHP 中的数组遇到了一些问题。

我有以下数组:

Array
(
    [0] => banana
    [1] => apple
    [2] => raspberry
    [3] => kiwi
    [4] => cherry
    [5] => nuts
)

但我想踢出'kiwi'并将所有其他键向上移动,以获得以下...

Array
(
    [0] => banana
    [1] => apple
    [2] => raspberry
    [3] => cherry
    [4] => nuts
)

我相信这里有人知道如何完成它,php 的转变只需要第一个键而不是特定的东西。

提前致谢

4

4 回答 4

5

array_splice对你有用。如果您愿意,它甚至可以让您在其中插入新条目。

对于这种特定情况,您使用:

array_splice($array, 3, 1);
于 2013-04-22T01:23:45.277 回答
2

AFAIK,没有任何内置功能可以做到这一点,但你可以创建一个。您要做的是,删除特定元素,然后重新计算键。

function a_shift($index, $array) {
     unset($array[$index));
     return array_values($array);
}
于 2013-04-22T01:25:58.800 回答
2
$array = array("banana", "apple", "raspberry", "kiwi", "cherry", "nuts");
$key = array_search('kiwi', $array);
unset($array[$key]);
$array = array_values($array);
print_r($array);

Output:
Array ( [0] => banana [1] => apple [2] => raspberry [3] => cherry [4] => nuts ) 
于 2013-04-22T01:31:40.657 回答
0

我用它从一个数组中删除键并复制到另一个:

$keys = [1, 3];
foreach ($keys as $index => $key) {
    if ($index != 0) {
        $key -= $index;
    }
    $newArr[] = array_splice($oldArr, $key, 1)[0];
}
return $newArr;
于 2021-12-15T14:52:29.480 回答