概要
array_reverseがreverseするのは、なんなのかわからなかったというお話。
では、動作を確認
php > var_dump(array_reverse(array(1,2,3,4,5)));
array(5) {
[0]=>
int(5)
[1]=>
int(4)
[2]=>
int(3)
[3]=>
int(2)
[4]=>
int(1)
}
どうやらこれは普通にreverseしただけのようだ。
では次。
元スクリプト
<?php
$input = array("php", 4.0, array("green", "red"));
$reversed = array_reverse($input);
$preserved = array_reverse($input, true);
print_r($input);
print_r($reversed);
print_r($preserved);
?>
結果2
Array // 元の配列
(
[0] => php
[1] => 4
[2] => Array
(
[0] => green
[1] => red
)
)
Array // array_reverse オプションなし
(
[0] => Array
(
[0] => green
[1] => red
)
[1] => 4
[2] => php
)
Array // array_reverse preserve_key=true→これ使うとただ単に順番のみをreverseした形となる。
(
[2] => Array
(
[0] => green
[1] => red
)
[1] => 4
[0] => php
)
本当に注意すべきなのは、キーに文字列が混じった連想配列である場合。
結果
array(4) {
["test3"]=>
int(3)
["test2"]=>
int(2)
[0]=>
int(1)
[1]=>
int(0)
}