SYNCER

SYNCER

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()の挙動を確認して下さい。

bool(true)

Array
(
    [0] => test1
    [1] => test2
    [2] => test10
)

参考リンク

  • PHP - 公式マニュアル。