我在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的shift只需要第一个键,而不是特定的东西。
Thanks in advance
这就是array_splice
为您做的。如果你愿意,它甚至允许你在那里插入新的条目。
在这种情况下使用:
array_splice($array, 3, 1);
$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 )
AFAIK,没有任何内置函数来做到这一点,但您可以创建一个。你要做的是,删除一个特定的元素,然后重新计算键。
function a_shift($index, $array) {
unset($array[$index));
return array_values($array);
}
我用它从一个数组中删除键并复制到另一个数组:
$keys = [1, 3];
foreach ($keys as $index => $key) {
if ($index != 0) {
$key -= $index;
}
$newArr[] = array_splice($oldArr, $key, 1)[0];
}
return $newArr;