1 次元配列は sort() 関数を使用してソートし、2 次元配列は usort() 関数を使用して内部要素でソートし、高次元配列は多層ネストされた usort() 関数を使用して階層別にソートします。要素を分解し、層ごとに解決することが重要です。
PHP では、配列は次のことができる強力なデータ構造です。多次元配列を含むさまざまな種類のデータを保存します。多次元配列は、他の配列を含む配列であり、これにより複雑なデータ構造を作成できます。
多次元配列の並べ替えは難しい作業になる可能性がありますが、その背後にある概念を理解することが重要です。この記事では、次元への旅をし、PHP 組み込み関数を使用して 1 次元、2 次元、およびそれ以上の次元の多次元配列を並べ替える方法を学びます。
1 次元配列のソートは最も単純な形式です。 sort()
関数を使用すると、配列内の要素を昇順に並べ替えることができます。
<?php $arr = [5, 2, 8, 3, 1]; sort($arr); print_r($arr); // 输出:[1, 2, 3, 5, 8] ?>
2 次元配列の並べ替えは少し複雑です。内部配列の要素に基づいて並べ替えることができます。たとえば、生徒の成績を含む 2 次元配列があるとします。
<?php $students = [ ['name' => 'Alice', 'score' => 90], ['name' => 'Bob', 'score' => 80], ['name' => 'Carol', 'score' => 70] ]; ?>
生徒を成績に基づいて降順に並べ替えるには、usort()
関数を使用できます。
<?php usort($students, function($a, $b) { return $b['score'] <=> $a['score']; }); print_r($students); // 输出:[ // ['name' => 'Alice', 'score' => 90], // ['name' => 'Bob', 'score' => 80], // ['name' => 'Carol', 'score' => 70] // ] ?>
ソートの概念は高次元配列でも同じです。たとえば、3 人の学生のクラスに関する情報を含む 3 次元配列を考えてみましょう。
<?php $classes = [ [ ['name' => 'Alice', 'grade' => 'A'], ['name' => 'Bob', 'grade' => 'B'], ['name' => 'Carol', 'grade' => 'C'] ], [ ['name' => 'Dave', 'grade' => 'A'], ['name' => 'Eve', 'grade' => 'B'], ['name' => 'Frank', 'grade' => 'C'] ], [ ['name' => 'George', 'grade' => 'A'], ['name' => 'Helen', 'grade' => 'B'], ['name' => 'Ian', 'grade' => 'C'] ] ]; ?>
学生の成績に基づいて 3 つのクラスすべてを降順に並べ替えるには、複数レベルの usort を使用できます。 ( )
関数のネスト:
<?php usort($classes, function($a, $b) { usort($a, function($c, $d) { return $d['grade'] <=> $c['grade']; }); usort($b, function($c, $d) { return $d['grade'] <=> $c['grade']; }); return $b[0]['grade'] <=> $a[0]['grade']; }); print_r($classes); // 输出:[ // [ // ['name' => 'Alice', 'grade' => 'A'], // ['name' => 'Bob', 'grade' => 'B'], // ['name' => 'Carol', 'grade' => 'C'] // ], // [ // ['name' => 'Dave', 'grade' => 'A'], // ['name' => 'Eve', 'grade' => 'B'], // ['name' => 'Frank', 'grade' => 'C'] // ], // [ // ['name' => 'George', 'grade' => 'A'], // ['name' => 'Helen', 'grade' => 'B'], // ['name' => 'Ian', 'grade' => 'C'] // ] // ] ?>
多次元配列の並べ替えを理解する鍵は、問題を分解し、ネストされた usort()
関数を使用して層ごとに解決することです。このようにして、任意の次元を持つ複雑なデータ構造を簡単に並べ替えることができます。
以上がPHP 多次元配列ソートの次元の旅: 1 次元から多次元への詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。