PHPのnatsort()
関数は、配列の要素を、値の自然な昇順で、並べ替える組み込み関数。
キーと値の相関関係を維持したまま、ソートする。
定義
論理型 natsort( 配列型 &$array );
パラメータ
- 配列型 &$array
並べ替える対象の配列を指定。
戻り値
論理値。
並べ替えに成功すると「TRUE」、失敗すると「FALSE」を返す。
構文
配列要素を、値の自然な昇順でソート
論理値 = natsort( 配列 );
「配列」の要素を、値の自然な昇順で、並べ替える。
例えば、「a10」と「a5」を自然順比較の昇順で並べると「a5,a10」になる。
サンプル
配列の要素を、値の自然な昇順でソート(整数)
<pre>
<?php
$varArray = array( 2, 10, 0, 7, 500, 70 );
natsort( $varArray );
print_r( $varArray );
?>
</pre>
<?php
$varArray = array( 2, 10, 0, 7, 500, 70 );
natsort( $varArray );
print_r( $varArray );
?>
</pre>
↓↓↓出力結果↓↓↓
Array
(
[2] => 0
[0] => 2
[3] => 7
[1] => 10
[5] => 70
[4] => 500
)
(
[2] => 0
[0] => 2
[3] => 7
[1] => 10
[5] => 70
[4] => 500
)
配列の要素を、値の自然な昇順でソート(負数)
<pre>
<?php
$varArray = array( "2", "-10", "0", "-7", "-500", "70" );
natsort( $varArray );
print_r( $varArray );
?>
</pre>
<?php
$varArray = array( "2", "-10", "0", "-7", "-500", "70" );
natsort( $varArray );
print_r( $varArray );
?>
</pre>
↓↓↓出力結果↓↓↓
Array
(
[3] => -7
[1] => -10
[4] => -500
[2] => 0
[0] => 2
[5] => 70
)
(
[3] => -7
[1] => -10
[4] => -500
[2] => 0
[0] => 2
[5] => 70
)
配列の要素を、値の自然な昇順でソート(ゼロパディング)
<pre>
<?php
$varArray = array( "0002", "0010", "0000", "07", "0500", "0000070" );
natsort( $varArray );
print_r( $varArray );
?>
</pre>
<?php
$varArray = array( "0002", "0010", "0000", "07", "0500", "0000070" );
natsort( $varArray );
print_r( $varArray );
?>
</pre>
↓↓↓出力結果↓↓↓
Array
(
[2] => 0000
[0] => 0002
[3] => 07
[1] => 0010
[5] => 0000070
[4] => 0500
)
(
[2] => 0000
[0] => 0002
[3] => 07
[1] => 0010
[5] => 0000070
[4] => 0500
)
配列の要素を、値の自然な昇順でソート(文字列と整数)
<pre>
<?php
$varArray = array( "v2", "v10", "v7", "v500", "v70" );
natsort( $varArray );
print_r( $varArray );
?>
</pre>
<?php
$varArray = array( "v2", "v10", "v7", "v500", "v70" );
natsort( $varArray );
print_r( $varArray );
?>
</pre>
↓↓↓出力結果↓↓↓
Array
(
[0] => v2
[2] => v7
[1] => v10
[4] => v70
[3] => v500
)
(
[0] => v2
[2] => v7
[1] => v10
[4] => v70
[3] => v500
)
連想配列の要素を、値の自然な昇順でソート
<pre>
<?php
$varArray = array(
"a" => "v2",
"b" => "v10",
"c" => "v7",
"d" => "v500",
"e" => "v70"
);
natsort( $varArray );
print_r( $varArray );
?>
</pre>
<?php
$varArray = array(
"a" => "v2",
"b" => "v10",
"c" => "v7",
"d" => "v500",
"e" => "v70"
);
natsort( $varArray );
print_r( $varArray );
?>
</pre>
↓↓↓出力結果↓↓↓
Array
(
[a] => v2
[c] => v7
[b] => v10
[e] => v70
[d] => v500
)
(
[a] => v2
[c] => v7
[b] => v10
[e] => v70
[d] => v500
)
キーと値の相関関係は、維持したままである点に、注目。