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($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 に答える