原来的问题有点不清楚。我了解您想要删除索引 X,并将索引 X 之后的所有项目作为数组中的第一项放置。
$index2remove = 2;
$newArray1 = array_slice($foo, $index2remove+1); // Get items after the selected index
$newArray2 = array_slice($foo, 0, $index2remove); // get everything before the selected index
$newArray = array_merge($newArray1, $newArray2); // and combine them
或者更短且内存消耗更少(但更难阅读):
$index2remove = 2;
$newArray = array_merge(
array_slice($foo, $index2remove+1), // add last items first
array_slice($foo, 0, $index2remove) // add first items last
);
您不需要在我的代码中取消设置值 2,您只需将其切片即可。我们使用第二个拼接函数中的 -1 来做到这一点。
如果需要,您可以替换$newArray = array_merge()
为$foo = array_merge()
,但仅在第二个中,如果您不需要保存原始数组。
编辑:更改了小错误,谢谢朴素的简