関数の概要
natcasesort() は PHP の配列操作関数の一つで、配列の要素を「自然順序」で大文字小文字を区別せずにソートします。自然順序とは、人間が直感的に理解しやすい並び順のことで、例えばファイル名の「file1, file2, file10」のように数字部分を数値として扱うソート方法です。
パラメータの説明
- array(参照渡し):ソート対象の配列を指定します。配列は文字列や数字の混在でも問題ありません。配列自体が関数内で変更されます。
戻り値
成功した場合は true を返し、失敗した場合は false を返します。配列自体は参照渡しなので、ソート結果は引数の配列に直接反映されます。
使用例
基本的な使い方
<?php
$fruits = ["Banana", "apple", "orange", "Apple", "banana"];
natcasesort($fruits);
print_r($fruits);
?>
この例では大文字小文字を区別せずにソートされ、結果は「apple」「Apple」「Banana」「banana」「orange」の順に並びます。
数字を含む文字列のソート
<?php
$files = ["file20.txt", "file3.txt", "file100.txt", "file1.txt"];
natcasesort($files);
print_r($files);
?>
数字部分も自然順に扱うため、「file1.txt」「file3.txt」「file20.txt」「file100.txt」の順にソートされます。この点が数字を単純な文字列として扱う sort() と異なります。
キーに関係なく値だけをソート
<?php
$array = ["c" => "Cat1", "a" => "cat10", "b" => "cat2"];
natcasesort($array);
print_r($array);
?>
配列のキーは変わらずに、値のみが大文字小文字を無視して自然順にソートされます。出力結果では「Cat1」「cat2」「cat10」の順に並びます。
関連する関数
- sort() – 標準的な昇順ソート(大文字小文字を区別)
- natsort() – 自然順ソート(大文字小文字を区別)
- asort() – キーを保持しつつ昇順ソート(大文字小文字を区別)
- ksort() – キーを昇順にソート
- array_multisort() – 複数の配列を複合的にソート
まとめ
natcasesort() は大文字小文字を区別せず、数字を含む文字列も自然な順序でソートしたい場合に非常に便利な関数です。ファイル名リストやユーザー入力の文字列リストなどを分かりやすく並べ替えたい際に役立ちます。配列のキーは保持されるので、元の配列構造を崩さずにソートが可能です。PHPでの配列操作をより直感的にしたいときに使いましょう。
