配列要素を、自然順ソートで並べ替えるには、usort()、uksort()、uasort()などの配列をソートする関数の、コールバック関数に、「strnatcmp()」や「strnatcasecmp()」を指定する。
数字の配列を、自然順ソート
数字を格納した配列を、自然順ソートで並べ替える。
usort()のコールバック関数に、「strnatcmp()」を指定する。
<pre>
<?php
$arrayA = array( 2, 10, 7, 500, 70 );
usort( $arrayA, "strnatcmp" );
print_r( $arrayA );
?>
</pre>
<?php
$arrayA = array( 2, 10, 7, 500, 70 );
usort( $arrayA, "strnatcmp" );
print_r( $arrayA );
?>
</pre>
↓↓↓出力結果↓↓↓
Array
(
[0] => 2
[1] => 7
[2] => 10
[3] => 70
[4] => 500
)
(
[0] => 2
[1] => 7
[2] => 10
[3] => 70
[4] => 500
)
アルファベットと数字の配列を、自然順ソート
アルファベットと数字を組み合わせた文字列を格納した配列を、自然順ソートで並べ替える。
usort()のコールバック関数に、「strnatcmp()」を指定する。
<pre>
<?php
$arrayA = array( "img2.png", "img10.png", "img7.png", "img500.png", "img70.png" );
usort( $arrayA, "strnatcmp" );
print_r( $arrayA );
?>
</pre>
<?php
$arrayA = array( "img2.png", "img10.png", "img7.png", "img500.png", "img70.png" );
usort( $arrayA, "strnatcmp" );
print_r( $arrayA );
?>
</pre>
↓↓↓出力結果↓↓↓
Array
(
[0] => img2.png
[1] => img7.png
[2] => img10.png
[3] => img70.png
[4] => img500.png
)
(
[0] => img2.png
[1] => img7.png
[2] => img10.png
[3] => img70.png
[4] => img500.png
)
連想配列を自然順ソート
アルファベットと数字を組み合わせた文字列を格納した連想配列を、自然順ソートで並べ替える。
uasort()のコールバック関数に、「strnatcmp()」を指定する。
<pre>
<?php
$arrayA = array(
"a" => "img2.png",
"b" => "img10.png",
"c" => "img7.png",
"d" => "img500.png",
"e" => "img70.png"
);
uasort( $arrayA, "strnatcmp" );
print_r( $arrayA );
?>
</pre>
<?php
$arrayA = array(
"a" => "img2.png",
"b" => "img10.png",
"c" => "img7.png",
"d" => "img500.png",
"e" => "img70.png"
);
uasort( $arrayA, "strnatcmp" );
print_r( $arrayA );
?>
</pre>
↓↓↓出力結果↓↓↓
Array
(
[a] => img2.png
[c] => img7.png
[b] => img10.png
[e] => img70.png
[d] => img500.png
)
(
[a] => img2.png
[c] => img7.png
[b] => img10.png
[e] => img70.png
[d] => img500.png
)