natsort - 配列を値で自然順にソートする
natsortは、指定した配列を値で自然順にソートする関数です。自然順とは、人間がするような手法でのソート方法で、例えば、"test10"を"test2"よりも後にソートします。
構文
パラメータ
&$array
対象の配列。
返り値
bool
ソートに成功した場合はtrue、失敗した場合はfalseを返す。
サンプルコード
<?php
$array = [ "test1", "test2", "test10" ] ;
$response = asort( $array ) ;
デモ
自然順じゃないソート
まずは同じように値でソートする関数のasortの例を見て下さい。"test10"の方が"test2"よりも前にソートされるのが分かります。2よりも1の方が若い数字なので文字列比較でのソートとして挙動は正しいですが、一般的に人間がする並び替えとは違います。
<?php
/*** このコードは編集できます。 ***/
$array = [ "test1", "test2", "test10" ] ;
$response = asort( $array ) ;
var_dump( $response ) ;
print_r( $array ) ;
自然順のソート
続いてnatsortの例です。この関数の場合、人間を考慮した、自然順のアルゴリズムを使ったソートをします。今度は"test2"が"test10"よりも前に来ました。
<?php
/*** このコードは編集できます。 ***/
$array = [ "test1", "test2", "test10" ] ;
$response = natsort( $array ) ;
var_dump( $response ) ;
print_r( $array ) ;
参考
- PHP: natsort
- PHPの公式リファレンス。
関連記事
- uasort
- ユーザー定義のアルゴリズムで、配列をキーと値の関係を維持したままソートする。
- rsort
- 配列を値で逆順にソートする。
- array_multisort
- 複数、多次元の配列をソートする。
- natcasesort
- 配列を値で大文字小文字の区別なしの自然順にソートする。
- usort
- ユーザー定義のアルゴリズムで、配列を値でソートする。