我想将第一个索引处的数组元素移动到数组中的第五个索引。我怎么能这样做?
答案 0 :(得分:2)
如果你的意思是“移动”,那可能是这样的
$from = 1;
$to = 5;
$el = $array[$from];
unset($array[$from]);
$array = array_merge (
array_slice($array,0,$to),
array($el),
array_slice($array,$to));
不能测试它,但想法是:我们从原始数组中取出$from
处的元素,而不是将其余部分拆分为$to
并将它们合并在一起。也许array_slice()
中的某些索引不完全匹配;)
答案 1 :(得分:2)
虽然目前对您提出的问题至少有2个有效答案,但数组不是正确的数据结构,用于保存频繁更改且排序很重要的列表。随着阵列大小的增加,这些解决方案将开始变得非常缓慢。
正确的结构将是链表,不幸的是AFAIK捆绑的PHP实现(splDoublyLinkedList)也不支持插入。
答案 2 :(得分:0)
$arr[4]=$arr[0];
unset($arr[0]);