【PHP8.x】natsortメソッドの使い方

natsortメソッドの使い方について、初心者にもわかりやすく解説します。

作成日: 更新日:

基本的な使い方

natsortメソッドは、RecursiveArrayIteratorが現在指している配列エントリを、自然順アルゴリズムを用いてソートを実行するメソッドです。自然順ソートとは、人間が直感的に期待する順序で文字列を並べ替える方法です。例えば、要素として「file1.txt」「file10.txt」「file2.txt」を持つ配列があった場合、標準的なソートでは文字列として比較されるため「file1.txt」「file10.txt」「file2.txt」の順になります。しかし、natsortメソッドによる自然順ソートでは、文字列中の数値をその大きさで認識するため、「file1.txt」「file2.txt」「file10.txt」という期待通りの順序に並べ替えます。このメソッドは多次元配列を再帰的に処理している最中に、現在の要素が配列である場合にその内部をソートするために使用します。このメソッドは返り値を返さず、対象の配列を直接変更します。もし現在のイテレータの位置が配列でない場合にこのメソッドを呼び出すと、BadMethodCallException例外がスローされるため注意が必要です。

構文(syntax)

1<?php
2
3$array = [
4    'img12.png' => 'photo 12',
5    'img1.png' => 'photo 1',
6    'img10.png' => 'photo 10',
7    'img2.png' => 'photo 2'
8];
9
10$iterator = new RecursiveArrayIterator($array);
11
12// "natural order"アルゴリズムでキーによってエントリをソートします
13$iterator->natsort();
14
15foreach ($iterator as $key => $value) {
16    echo $key . ": " . $value . PHP_EOL;
17}
18
19?>

引数(parameters)

引数なし

引数はありません

戻り値(return)

bool

natsortメソッドは、配列を自然順ソートした結果が正常に完了したかどうかを示す真偽値(bool)を返します。ソートが成功した場合は true を、失敗した場合は false を返します。