natsort() - 配列を値で自然順にソートする
公開日:
natsort
は、指定した配列を値で自然順にソートする関数です。自然順とは、人間がするような手法でのソート方法で、例えば、"test10"
を"test2"
よりも後にソートします。
構文
bool natsort ( array &$array )
パラメータ
&$array
対象の配列。
返り値
bool
ソートに成功した場合はtrue
、失敗した場合はfalse
を返す。
サンプルコード
自然順じゃないソート
まずは同じように値でソートする関数のasort
の例を見て下さい。"test10"
の方が"test2"
よりも前にソートされるのが分かります。2
よりも1
の方が若い数字なので文字列比較でのソートとして挙動は正しいですが、一般的に人間がする並び替えとは違います。
php
<?php
// 配列
$queue = [ "test1", "test2", "test10" ] ;
// 実行
$result = asort( $queue ) ;
// 結果
var_dump( $result ) ; // 返り値
echo "\n" ;
print_r( $queue ) ; // $bの内容
結果 (出力内容) - PHP7.0.21
bool(true)
Array
(
[0] => test1
[2] => test10
[1] => test2
)
自然順のソート
続いてnatsort
の例です。この関数の場合、人間を考慮した、自然順のアルゴリズムを使ったソートをします。今度は"test2"
が"test10"
よりも前に来ました。
php
<?php
// 配列
$queue = [ "test1", "test2", "test10" ] ;
// 実行
$result = natsort( $queue ) ;
// 結果
var_dump( $result ) ; // 返り値
echo "\n" ;
print_r( $queue ) ; // $bの内容
結果 (出力内容) - PHP7.0.21
bool(true)
Array
(
[0] => test1
[1] => test2
[2] => test10
)
サンドボックス
ソースコードを編集してnatsort()
の挙動を確認して下さい。
参考リンク
- PHP - 公式マニュアル。