実験
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 |
$a[] = "abc"; $a[] = "123"; $a[] = "aaa"; $a[] = "jkl"; $a[] = "xxx"; echo "ORIGINAL\n"; print_r($a); // Array ( [0] => abc [1] => 123 [2] => aaa [3] => jkl [4] => xxx ) $af = array_reverse($a, false); echo "\narray_reverse(false)\n"; print_r($af); echo "\narray_reverse(true)\n"; $at = array_reverse($a, true); print_r($at); |
結果
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 |
ORIGINAL Array ( [0] => abc [1] => 123 [2] => aaa [3] => jkl [4] => xxx ) array_reverse(false) Array ( [0] => xxx [1] => jkl [2] => aaa [3] => 123 [4] => abc ) array_reverse(true) Array ( [4] => xxx [3] => jkl [2] => aaa [1] => 123 [0] => abc ) |
PHPの配列の添字の数字はあくまでキーであって、並び順とは関係ないようだ。array_reverse(false)の場合は、キーの内部的順番は保持されて値だけが逆になる。array_reverse(true)の場合は、キーも値も順番が逆になる。foreachでの順番を逆にしたい場合はどちらでもいいが、trueの方を使ったほうがいいと思われる。