我正在创建一个数组,希望删除数组的第一个元素并重新索引。据我所知,array_shift()是正确的解决方案。然而,它在我的实施中不起作用。
我的类中有一个成员变量,它被定义为一个名为$waypoint_city的数组。以下是数组移位前的变量输出:
print_r($this->waypoint_city);
结果:
Array ( [0] => [1] => JACKSONVILLE [2] => ORLANDO [3] => MONTGOMERY [4] => MEMPHIS )
如果我做以下操作,我会得到正确的结果:
print_r(array_shift($this->waypoint_city));
结果:
Array ( [0] => JACKSONVILLE [1] => ORLANDO [2] => MONTGOMERY [3] => MEMPHIS )
但是,如果我尝试将结果重新分配给成员变量,它就不起作用。。。有人知道为什么吗?
$this->waypoint_city = array_shift($this->waypoint_city);
如果我尝试打印_r($this->waypoint_city),看起来里面什么都没有。感谢所有能拯救我还没拔出的头发的人。
array_shift
[docs]在适当的位置更改数组。它返回第一个元素(在您的情况下为空):
返回移位后的值,如果数组为空或不是数组,则返回
NULL
。
你所要做的就是:
array_shift($this->waypoint_city);
那是因为那里什么都没有。元素0
设置为零,array_shift
返回移位后的元素,第一次通过时为null。
array_shift()获取其参数作为引用,因此您应该调用array_shiff(),如下所示:
$shiftedElement = array_shift(&$this->waypoint_city);