[PHP] 配列に関する関数メモ [3] – 配列の順番を並び替える

前回([PHP] 配列に関する関数メモ [2] – 配列中の順番で値を取得 / 配列から要素を探す)に引き続き、今回は配列の順番を並び変える関数をまとめました。

配列の順番を並び替える

配列の順番を逆転させる – 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" 
} 
array_reverse(配列, キーを維持する場合は true)
PHP: array_reverse – Manual

配列の中からランダムな値を取得する – array_rand()

array_rand() 関数を使用すると配列の中からランダムな値を取り出し、そのキーを取得することができます。

配列 $array の中から一つランダムなキーを取得する。

$array = array( 'a', 'b', 'c', 'd' );
$value = array_rand( $array );

//↓結果

$value → int(3) などランダムなキー
array_rand(配列, ランダムに取得したい数)
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" 
} 
などランダムな順番。
shuffle(配列, ランダムに取得したい数)
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" 
}  
sort(配列, ソートの動作を指定)
PHP: sort – Manual

rsort(配列, ソートの動作を指定)
PHP: rsort – Manual

配列の値を元に昇順/降順に並び替える(キーを維持する) – 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" 
}  
asort(配列, ソートの動作を指定)
PHP: asort – Manual

arsort(配列, ソートの動作を指定)
PHP: arsort – Manual

配列のキーを元に昇順/降順に並び替える – 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" 
}  
ksort(配列, ソートの動作を指定)
PHP: ksort – Manual

krsort(配列, ソートの動作を指定)
PHP: krsort – Manual

コメントを残す

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です