4

我试图删除最后一个数组的第一个元素

数组:

$harbours = array(
              '67' => array('boat1', 'boat2'),
              '43' => array('boat3', 'boat4')
            );

我想删除并返回boat3

$last = end($harbours);
$boat = array_shift($last);

如果我那时print_r ($harbours),'boat3' 仍然存在。

4

3 回答 3

10

那是因为array_shift您正在更改 end 数组的副本

您需要获取 end 数组的引用才能移动它。

试试这个:

end($array);

$currKey = key($array); //get the last key

array_shift($array[$currKey]);

见演示:http ://codepad.org/ey3IVfIL

于 2012-12-19T13:45:20.970 回答
-1
$last = end($harbours);<br />

//First reverse the array and then pop the last element, which will be the first of original array.<br />
array_pop(array_reverse($last));
于 2012-12-19T13:49:15.453 回答
-2

此代码应按预期工作:

$harbours = array('67' => array('boat1', 'boat2'), '43' => array('boat3', 'boat4'));

end($harbours);

$key = key($harbours);

$x = $harbours[$key];

array_shift($x);

$harbours[$key] = $x;

print_r($harbours);
于 2012-12-19T13:49:18.573 回答