array_reverse関数は第一引数に配列、第二引数に真偽型のpreserve_keysを指定します。返り値は指定した配列の要素を逆順にした配列です。
array_reserve(配列, preserve_keys);
第二引数のpreserve_keysは以下が指定できます。
true:0から始まる添字のキーと文字列のキーは維持
false:0から始まる添字のキーは振り直し、文字列のキーは維持(初期値)
連想配列を逆順にしてvar_dumpします。
<?php
$list = array(
'トマト' => 100,
'キャベツ' => 120,
'ピーマン' => 80,
'レタス' => 90
);
var_dump(array_reverse($list));
?>
実行結果は以下になります。キーは全て文字列のため維持されています。
array(4) {
["レタス"]=> int(90)
["ピーマン"]=> int(80)
["キャベツ"]=> int(120)
["トマト"]=> int(100)
}
次に配列を逆順にしてvar_dumpします。
<?php
$list = array('トマト','キャベツ','ピーマン','レタス');
var_dump(array_reverse($list));
?>
実行結果は以下になります。array_reverseの第二引数を省略しているため初期値のfalseが適用され、添字の数値キーが振り直されています。
array(4) {
[0]=> string(9) "レタス"
[1]=> string(12) "ピーマン"
[2]=> string(12) "キャベツ"
[3]=> string(9) "トマト"
}
array_reverseの第二引数にtrueを指定します。
<?php
$list = array('トマト','キャベツ','ピーマン','レタス');
var_dump(array_reverse($list, true));
?>
今度は添字の数値キーが維持されているのがわかります。
array(4) {
[3]=> string(9) "レタス"
[2]=> string(12) "ピーマン"
[1]=> string(12) "キャベツ"
[0]=> string(9) "トマト"
}
