Webエンジニア向けプログラミング解説動画をYouTubeで配信中!
▶ チャンネル登録はこちら

【PHP8.x】SORT_ASC定数の使い方

SORT_ASC定数の使い方について、初心者にもわかりやすく解説します。

作成日: 更新日:

基本的な使い方

SORT_ASC定数は、PHPにおいて配列をソート(並べ替える)際に、その順序を「昇順」に指定するために使用される定数です。昇順とは、数値であれば小さい方から大きい方へ、アルファベットであればAからZへ、日本語であればあいうえお順といった形で、値が徐々に増加する方向に並べることを指します。

この定数は、主にarray_multisort()関数のように、複数の配列や多次元配列を特定のキーに基づいて並べ替える関数と組み合わせて利用されます。例えば、商品リストを価格の安い順に並べ替えたい場合や、ユーザー名簿をアルファベット順に整理したい場合などに、array_multisort()関数の引数としてSORT_ASC定数を指定することで、意図した通りの昇順でのソートを実現できます。

PHPでのデータ処理において、配列の並べ替えは非常に頻繁に行われる操作であり、SORT_ASC定数はその基本的な並べ替え方向を明確に指定するための重要な役割を担っています。これにより、データの表示や集計ロジックを正確に制御し、利用者が理解しやすい形で情報を提供することが可能になります。開発者がデータを効率的かつ正確に整理するために不可欠な定数の一つです。

構文(syntax)

1<?php
2$numbers = [3, 1, 2];
3sort($numbers, SORT_ASC);
4?>

引数(parameters)

引数なし

引数はありません

戻り値(return)

戻り値なし

戻り値はありません

サンプルコード

PHP: SORT_ASCで昇順ソートする

1<?php
2
3/**
4 * PHPのSORT_ASC定数を使用して配列を昇順にソートする例です。
5 *
6 * SORT_ASCは、主にarray_multisort()関数で、指定された配列を昇順にソートする際に使用します。
7 * この定数はソートの方向(昇順)を指定します。
8 */
9function demonstrateSortAsc(): void
10{
11    // ソート対象となる2つの関連する配列を準備します
12    $names = ['Banana', 'Apple', 'Grape', 'Cherry'];
13    $quantities = [10, 5, 20, 15];
14
15    echo "--- ソート前のデータ ---" . PHP_EOL;
16    echo "名前: " . implode(', ', $names) . PHP_EOL;
17    echo "数量: " . implode(', ', $quantities) . PHP_EOL . PHP_EOL;
18
19    // array_multisort() を使用して、まず数量を昇順にソートし、
20    // それに合わせて名前の配列も並べ替えます。
21    // SORT_ASC は昇順ソートを指定する定数です。
22    array_multisort($quantities, SORT_ASC, $names);
23
24    echo "--- 数量を昇順 (SORT_ASC) でソートした後のデータ ---" . PHP_EOL;
25    echo "名前: " . implode(', ', $names) . PHP_EOL;
26    echo "数量: " . implode(', ', $quantities) . PHP_EOL . PHP_EOL;
27
28    // SORT_ASC の役割をより明確にするため、単一の配列で昇順と降順を比較します。
29    $numbers = [5, 2, 8, 1, 9];
30    echo "--- 数値配列のソート比較 ---" . PHP_EOL;
31    echo "元の配列: " . implode(', ', $numbers) . PHP_EOL;
32
33    $ascNumbers = $numbers; // 昇順ソート用にコピーを作成
34    array_multisort($ascNumbers, SORT_ASC); // 昇順ソートを実行
35    echo "昇順 (SORT_ASC) でソート: " . implode(', ', $ascNumbers) . PHP_EOL;
36
37    $descNumbers = $numbers; // 降順ソート用にコピーを作成
38    array_multisort($descNumbers, SORT_DESC); // 降順ソートを実行 (SORT_DESCは降順を指定する定数)
39    echo "降順 (SORT_DESC) でソート: " . implode(', ', $descNumbers) . PHP_EOL;
40}
41
42// 関数を実行して動作を確認します
43demonstrateSortAsc();

PHP 8で提供されるSORT_ASCは、配列をソートする際の方向を「昇順」に指定するために使用する定数です。主にarray_multisort()関数で利用され、配列の要素を小さい値から大きい値へと並べ替えることを指示します。この定数自体は引数を取らず、戻り値もありませんが、内部的に特定の整数値を持っており、ソート関数の引数として渡すことでソートの挙動を制御します。

サンプルコードでは、array_multisort()関数を用いて、商品名と数量という関連する二つの配列をソートする例が示されています。$quantities(数量)配列をSORT_ASCで昇順に並べ替えることで、それに対応する$names(名前)配列も同じ順序で並び替えられます。これにより、数量が少ない商品から順に名前が並ぶようにデータが整理されます。

また、単一の数値配列をソートする例では、SORT_ASCを指定することで数値が最小値から最大値へと昇順に並べ替えられることが示されています。この例では、対比としてSORT_DESC(降順)も使用されており、SORT_ASCが明確に「昇順」を意味する定数であることが理解できます。このように、SORT_ASCはPHPで配列を効率的に昇順にソートする際に非常に役立つ定数です。

SORT_ASC定数は単独で機能せず、array_multisort()関数の引数として昇順ソートの方向を指定するために利用します。array_multisort()は引数の配列を直接変更(参照渡し)しますので、元の配列を保持したい場合は、ソート前に必ずコピーを作成してください。複数の配列を関連付けてソートする際は、ソート基準となる配列の直後にSORT_ASCを指定します。これにより、配列の要素が小さいものから大きいものへと並べ替えられます。

PHP配列の昇順・降順ソートする

1<?php
2
3/**
4 * 配列の昇順 (SORT_ASC) および降順 (SORT_DESC) ソートの例を示します。
5 * システムエンジニアを目指す初心者が、ソート定数の使い方を理解するのに役立ちます。
6 */
7function demonstrateArraySortingConstants(): void
8{
9    // ソート対象となる数値の配列を定義します。
10    $numbers = [3, 1, 4, 1, 5, 9, 2, 6];
11    echo "元の配列: " . implode(", ", $numbers) . "\n\n";
12
13    // 1. 昇順ソートの例 (SORT_ASC)
14    // array_multisort() 関数は、一つまたは複数の配列をソートするために使用されます。
15    // 第二引数に SORT_ASC を指定することで、昇順(小さい値から大きい値へ)にソートされます。
16    $numbersAsc = $numbers; // 元の配列を変更しないよう、コピーを作成します。
17    array_multisort($numbersAsc, SORT_ASC);
18    echo "昇順ソート (SORT_ASC): " . implode(", ", $numbersAsc) . "\n\n";
19
20    // 2. 降順ソートの例 (SORT_DESC)
21    // array_multisort() 関数に SORT_DESC を指定することで、降順(大きい値から小さい値へ)にソートされます。
22    $numbersDesc = $numbers; // 元の配列を変更しないよう、コピーを作成します。
23    array_multisort($numbersDesc, SORT_DESC);
24    echo "降順ソート (SORT_DESC): " . implode(", ", $numbersDesc) . "\n";
25}
26
27// 上記のソート例を実行する関数を呼び出します。
28demonstrateArraySortingConstants();

PHP 8で提供されるSORT_ASCは、配列をソートする際に「昇順」を指定するための定数です。この定数は、array_multisort()のような配列ソート関数と組み合わせて使用され、データの並び順を制御するために利用されます。

SORT_ASC定数そのものは引数を取らず、特定の戻り値も持ちません。これは、単に「昇順に並べ替える」という指示を表す数値としての役割を果たします。例えば、サンプルコードで示されているように、array_multisort($numbersAsc, SORT_ASC)と記述すると、$numbersAsc配列の要素が、1、2、3...のように小さい値から大きい値へと並べ替えられます。

また、対照的な定数としてSORT_DESCがあり、これをarray_multisort()関数に指定すると、配列の要素は大きい値から小さい値へと「降順」にソートされます。このように、これらの定数をソート関数の引数として渡すことで、配列内のデータの表示順や処理順を柔軟に指定できるようになります。システム開発においてデータの並べ替えは頻繁に行われる操作であり、これらの定数はその基本的な使い方を学ぶ上で非常に重要です。

SORT_ASCやSORT_DESCは、PHPが配列をソートする方向を指定するために用意された「定数」です。これらは変数とは異なり、PHPに決められた値を持つため、引用符で囲まずにそのまま記述してください。サンプルコードで使用されているarray_multisort関数は、ソート対象の配列を直接変更します(破壊的ソート)。そのため、元の配列データを保持したい場合は、サンプルコードのようにソート前に配列をコピーする習慣をつけることが重要です。これらの定数を用いることで、数値や文字列の配列を簡単に昇順や降順に並べ替えることができ、データの整理に役立ちます。

関連コンテンツ