・IT/Web系エンジニアの経験者の方
・どこの転職エージェントを利用しようか迷っている方
それなら、キッカケエージェントにご相談!
キッカケエージェントでは、少数精鋭のエージェントが、エンジニアの経験やスキル、志向性などをカウンセリングし、的確なアドバイスを提供します!
また、徹底した企業へのヒアリングにより、最適なマッチングを実現し、今では内定率が一般的なエージェントの2倍以上となっています!
転職エージェントに迷っている方、まずは無料でキャリア相談から!
(この記事は2022年8月21日に投稿されました。)
PHPで配列を並び替える関数として、array_reverse()があります。
array_reverse()とは指定した配列の要素の並びを逆に並び替える関数になります。
例えば、「[‘A’,’B’,’C’]」という文字列にarray_reverse()を使用すると、「[‘C’,’B’,’A’]」のように配列の要素が逆順になって返されます。
こちらの関数は1つのパラメータを指定して使用しますが、
任意のパラメータを付け足すことで、キーを保持した状態で要素の並びを逆順にすることができます。
また、array_reverse()は配列だけでなく、連想配列や多次元配列の並びを逆順にして並べることも可能です。
今回はPHPのarray_reverse()で配列や連想配列の並びを逆順にする方法について紹介していきます。
・連想配列の並びを逆順にしたい人
array_reverse()とは
array_reverse()とは指定した配列の要素の並びを逆に並び替える関数となります。
要素の並びを逆に並び替えることから「逆順にした配列」を返り値として返すようになります。
array_reverse()の書き方
array_reverse()の書き方は下記のようになります。
1 | <?php array_reverse('対象の配列' [, 'キーの保持']); ?> |
array_reverse()は必須パラメータである「対象の配列」を指定することで使用することができます。
また、任意パラメータである「キーの保持」を指定して使用することもできます。
array_reverse()のパラメータ
array_reverse()のパラメータは下記のようになります。
- 対象の配列(必須)
並びを逆順にする配列を指定する - キーの保持(任意)
キーを保存するかしないかをTRUE/FALSEで指定する
1つ目のパラメータである「対象の配列」は並びを逆順にする配列を指定します。
そして、2つ目のパラメータである「キーの保持」は並びを逆順にする際にキーをリセットするかしないかを真偽値で指定します。
array_reverse()で配列の並びを逆順にするサンプルコード
array_reverse()で配列の並びを逆順にするサンプルコードをご紹介します。
ここでは下記の2つの場合でarray_reverse()を使用します。
- 対象の配列に複数の要素が存在する場合
- 対象の配列に要素が存在しない場合
対象の配列に複数の要素が存在する場合
対象の配列に複数の要素が存在する場合にarray_reverse()を使用してみます。
⚫︎ index.php
1 2 3 4 5 6 7 8 9 | <?php echo '⚫︎ 対象の配列'; $array_makers = ['Adidas', 'Nike', 'Mizuno', 'Umbro', 'Puma']; print_r($array_makers); echo '⚫︎ array_reverse()使用後'; $array_makers_rev = array_reverse($array_makers); print_r($array_makers_rev); ?> |
実行結果
対象の配列に要素が複数存在する場合にarray_reverse()を使用すると、配列の要素が逆順に並び変えられます。
そのため、「Adidas」が先頭だった配列が「Puma」を先頭に並び変えられて表示されています。
対象の配列に要素が存在しない場合
対象の配列に要素が存在しない場合にarray_reverse()を使用してみます。
⚫︎ index.php
1 2 3 4 5 6 7 8 9 | <?php echo '⚫︎ 対象の配列'; $array_makers = []; print_r($array_makers); echo '⚫︎ array_reverse()使用後'; $array_makers_rev =array_reverse($array_makers); print_r($array_watch); ?> |
実行結果
対象の配列に要素が存在しない場合にarray_reverse()を使用すると、実行はされますが並び替えは行われません。
そのため、空の配列が表示されています。
array_reverse()でキーを保持したまま配列の並びを逆順にする場合
array_reverse()でキーを保持したまま配列の並びを逆順にする場合は、任意パラメータであるキーの保持に「TRUE」指定します。
TRUEを指定することで、値は逆順に並び替えられますが、キーの値は前の状態でキープすることができます。
⚫︎ index.php
1 2 3 4 5 6 7 8 9 10 11 12 13 | <?php echo '⚫︎ 対象の配列'; $array_makers = ['Adidas', 'Nike', 'Mizuno', 'Umbro', 'Puma']; print_r($array_makers); echo '⚫︎ array_reverse()使用後-1'; $array_makers_rev1 =array_reverse($array_makers, TRUE); print_r($array_makers_rev1); echo '⚫︎ array_reverse()使用後-2'; $array_makers_rev2 =array_reverse($array_makers, FALSE); print_r($array_makers_rev2); ?> |
実行結果
任意パラメータに「TRUE」を指定することで、キーを保持したまま並びが逆順になります。
また、任意パラメータに「FALSE」を指定することで、キーは保持されず並びが逆順になります。
そのためPumaのキーを見ると、TRUEの場合は「4」であり、FALSEの場合は「0」となっています。
array_reverse()で連想配列の並びを逆順にするサンプルコード
array_reverse()で連想配列の並びを逆順にするサンプルコードをご紹介します。
⚫︎ index.php
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 | <?php echo '⚫︎ 対象の連想配列'; $array_makers = [ 'adidas' => 'アディダス', 'Nike' => 'ナイキ', 'Mizuno' => 'ミズノ', 'Umbro' => 'アンブロ', 'Puma' => 'プーマ' ]; print_r($array_makers); echo '⚫︎ array_reverse()使用後'; $array_makers_rev =array_reverse($array_makers); print_r($array_makers_rev); ?> |
実行結果
array_reverse()によって、連想配列の要素が逆順に並び変えられます。
そのため、先頭が「アディダス」から「プーマ」へ並び替えられて連想配列が表示されています。
array_reverse()で多次元配列の並びを逆順にするサンプルコード
array_reverse()で多次元配列の並びを逆順にするサンプルコードをご紹介します。
2次元配列に使用する場合
2次元配列の場合にarray_reverse()を使用してみます。
⚫︎ index.php
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 | <?php echo '⚫︎ 対象の配列'; $array_makers = [ ['adidas', 'Nike', 'Mizuno', 'Umbro', 'Puma'], ['UNDER ARMOUR', 'new balance', 'asics', 'FILA', 'The North Face'] ]; print_r($array_makers); echo '⚫︎ array_reverse()使用後-1'; $array_makers_rev1 = array_reverse($array_makers); print_r($array_makers_rev1); echo '⚫︎ array_reverse()使用後-2'; $length = count($array_keys); for($i = 0; $i < $length; $i++) { $array_makers_rev2 = array_reverse($array_makers[$i]); print_r($array_makers_rev2); } ?> |
実行結果
for文の中にarray_reverse()を使用することで、2次元配列の並びを逆順にすることができます。
また、配列の後ろにインデックスを1つ指定することで、2次元配列の中にある1次元配列の並びを逆順にすることができます。
今回はfor文を使用して、2次元配列にある全ての1次元配列の並びを逆順に並び替えています。
3次元配列に使用する場合
3次元配列の場合にarray_reverse()を使用してみます。
⚫︎ index.php
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 | <?php echo '⚫︎ 対象の配列'; $array_makers =[ [['adidas', 'Nike', 'Mizuno', 'Umbro'], ['UNDER ARMOUR', 'new balance', 'FILA', 'The North Face']], [['アディダス','ナイキ','ミズノ', 'アンブロ'],['アンダーアーマー', 'ニューバランス', 'フィラ', 'ザノースフェイス']], ]; print_r($array_makers); echo '⚫︎ array_reverse()使用後-1'; $array_makers_rev1 = array_reverse($array_makers); print_r($array_makers_rev1); echo '⚫︎ array_reverse()使用後-2'; $length = count($array_makers); for($i = 0; $i < $length; $i++) { $array_makers_rev1 = array_reverse($array_makers[$i]); print_r($array_makers_rev1); } echo '⚫︎ array_reverse()使用後-3'; $length1 = count($array_makers); for($i = 0; $i < $length1; $i++) { $length2 = count($array_makers[$i]); for($j = 0; $j < $length2; $j++) { $array_makers_rev2 = array_reverse($array_makers[$i][$j]); print_r($array_makers_rev2); } } ?> |
実行結果
for文の中にarray_reverse()を使用することで、3次元配列の並びを逆順にすることができます。
また、配列の後ろにインデックスを1つ指定することで、3次元配列の中にある2次元配列の並びを逆順にすることができます。
そして、配列の後ろにインデックスを2つ指定することで、3次元配列の中にある1次元配列の並びを逆順にすることができます。
今回は多重for文を使用して、3次元配列にある全ての1次元配列の並びを逆順に並び替えています。
配列を決まった法則で並び替える場合
配列を決まった法則で並び替える場合は、sort()を使用します。
sort()とは指定した配列をソートする(並び替える)関数になります。
⚫︎ index.php
1 2 3 4 5 6 7 8 9 | <?php echo '⚫︎ 対象の配列'; $array_makers = ['Adidas', 'Nike', 'Mizuno', 'Umbro', 'Puma']; print_r($array_makers); echo '⚫︎ sort()使用後'; sort($array_makers); print_r($array_makers); ?> |
実行結果
sort()によって指定した配列がアルファベット順に並び替えられて表示されています。
文字列の並びを逆順にする場合
文字列の並びを逆順にする場合は、strrev()を使用します。
strrev()とは指定した文字列の順番を逆に並び替える関数になります。
⚫︎ index.php
1 2 3 4 5 6 7 8 9 | <?php echo '⚫︎ 対象の文字列'; $text = 'My favorite makers is adidas.'; echo $text; echo '⚫︎ strrev()使用後'; $text_rev = strrev($text); echo $text_rev; ?> |
実行結果
strrev()によって指定した文字列が逆順に並び替えられて表示されています。
もし、strrev()について詳しく知りたい場合は下記の記事をご参考ください。
まとめ
⚫︎ array_reverse()とは指定した配列の要素の並びを逆に並び替える関数である
⚫︎ array_reverse()を使用するには1つのパラメータが必須であり、最大で2つのパラメータを指定できる
・ 対象の配列(必須)
・ キーの保持(任意)
⚫︎ 対象の配列に要素が複数存在する場合にarray_reverse()を使用すると、配列の要素が逆順に並び変える
⚫︎ 対象の配列に要素が存在しない場合にarray_reverse()を使用すると、空の配列が返される
(エラーにはならない)
⚫︎ array_reverse()でキーを保持したまま配列の並びを逆順にするには、キーの保持に「TRUE」指定する
⚫︎ array_reverse()は連想配列の並びを逆順にすることができる
⚫︎ array_reverse()は多次元配列の並びを逆順にすることができる
⚫︎ 配列を決まった法則で並び替える場合は、sort()を使用する
⚫︎ 文字列の並びを逆順にする場合は、strrev()を使用する