[PHP] 配列に関する関数メモ [3] – 配列の順番を並び替える
前回([PHP] 配列に関する関数メモ [2] – 配列中の順番で値を取得 / 配列から要素を探す)に引き続き、今回は配列の順番を並び変える関数をまとめました。
- 配列の順番を逆転させて新たに配列を作る – array_reverse()
- 配列の中からランダムな値を取得する – array_rand()
- 配列の順番をランダムに並び替える – shuffle()
- 配列の値を元に昇順/降順に並び替える(キーを維持しない) – sort()/rsort()
- 配列の値を元に昇順/降順に並び替える(キーを維持する) – asort()/arsort()
- 配列のキーを元に昇順/降順に並び替える – ksort()/krsort()
配列の順番を並び替える
配列の順番を逆転させる – array_reverse()
array_reverse() 関数を使用すると配列の順番を逆転させ、その順番で新しい配列を作ることができます。第二引数に true を指定した場合は、元のキーを維持することができます。
配列 $array_1 の順番を逆転させた $array_2 を作成する。
$array_1 = array( 'a', 'b', 'c', 'd' ); $array_2 = array_reverse( $array_1 ); //↓結果 $array_2 → array(4) { [0]=> string(1) "d" [1]=> string(1) "c" [2]=> string(1) "b" [3]=> string(1) "a" }
PHP: array_reverse – Manual
配列の中からランダムな値を取得する – array_rand()
array_rand() 関数を使用すると配列の中からランダムな値を取り出し、そのキーを取得することができます。
配列 $array の中から一つランダムなキーを取得する。
$array = array( 'a', 'b', 'c', 'd' ); $value = array_rand( $array ); //↓結果 $value → int(3) などランダムなキー
PHP: array_rand – Manual
配列の順番をランダムに並び替える – shuffle()
shuffle() 関数を使用すると配列の順番をランダムに並び替えることができます。キーは新たに振り直され、もし、配列が連想配列だった場合は数字キーに変更されます。
配列 $array をランダムに並び変える。
$array = array( 'a', 'b', 'c', 'd' ); $value = shuffle( $array ); //↓結果 $value → 成功したら true 失敗したら false $array → array(4) { [0]=> string(1) "c" [1]=> string(1) "d" [2]=> string(1) "a" [3]=> string(1) "b" } などランダムな順番。
PHP: shuffle – Manual
配列の値を元に昇順/降順に並び替える(キーを維持しない) – sort()/rsort()
sort() 関数を使用すると配列の値を元に昇順に並び替えることができます。/ rsort() 関数を使用すると配列の値を元に降順に並び替えることができます。
キーは並び替えられた順に振り直され、もし、配列が連想配列だった場合は数字キーに変更されます。
第二引数に、SORT_NUMERIC を渡すと数値で比較し、SORT_STRING を渡すと文字列で比較します。
配列 $array を昇順(アルファベット順)に並び変える。
$array = array( 'b', 'a', 'd', 'c' ); $value = sort( $array, SORT_STRING ); //↓結果 $value → 成功したら true 失敗したら false $array → array(4) { [0]=> string(1) "a" [1]=> string(1) "b" [2]=> string(1) "c" [3]=> string(1) "d" }
配列の値を元に昇順/降順に並び替える(キーを維持する) – asort()/arsort()
asort() 関数を使用すると配列の値を元に昇順に並び替えることができます。/ arsort() 関数を使用すると配列の値を元に降順に並び替えることができます。sort()/rsort() 関数と違うのはキーを元のまま値を並び変える点です。
sort()/rsort() 関数と同じく第二引数に、SORT_NUMERIC を渡すと数値で比較し、SORT_STRING を渡すと文字列で比較します。
配列 $array をキーを維持したまま昇順(アルファベット順)に並び変える。
$array = array( 'b', 'a', 'd', 'c' ); $value = asort( $array, SORT_STRING ); //↓結果 $value → 成功したら true 失敗したら false $array → array(4) { [1]=> string(1) "a" [0]=> string(1) "b" [3]=> string(1) "c" [2]=> string(1) "d" }
配列のキーを元に昇順/降順に並び替える – ksort()/krsort()
ksort() 関数を使用すると配列のキーを元に昇順に並び替えることができます。/ krsort() 関数を使用すると配列のキーを元に降順に並び替えることができます。
sort()/rsort() 関数などと同じく第二引数に、SORT_NUMERIC を渡すと数値で比較し、SORT_STRING を渡すと文字列で比較します。
配列 $array をキーを元に昇順(数字順)に並び変える。 $array = array( 3 => 'a', 2 => 'b', 1 => 'c', 0 => 'd' ); $value = ksort( $array, SORT_NUMERIC ); //↓結果 $value → 成功したら true 失敗したら false $array → array(4) { [0]=> string(1) "d" [1]=> string(1) "c" [2]=> string(1) "b" [3]=> string(1) "a" }
I can’t hear anihtyng over the sound of how awesome this article is.