PHP 多次元配列の並べ替え Black Magic: カスタム関数 Compare_students を使用して、名前と成績に基づいて並べ替えます。並べ替えは、usort() 関数を介して実行されます。 PHP 7.4 の UAC は、匿名クラスを実装するためのよりクリーンな方法を提供します。カスタム関数は入力配列を比較し、名前で昇順、グレードで降順に並べ替えます。
#PHP 配列の多次元ソートの黒魔術: 秘密の原理を明らかにする
PHP における多次元ソート配列の計算は、一見複雑なタスクのように見える楽しいタスクです。ただし、適切なテクニックを習得し、その背後にある原理を理解すれば、この黒魔術を簡単に習得できるようになります。実際的なケース
学生データを含む配列があり、その配列を姓と学年で並べ替えたいとします。$students = [ ['name' => 'Alice', 'score' => 90], ['name' => 'Bob', 'score' => 85], ['name' => 'Charlie', 'score' => 95], ['name' => 'Dave', 'score' => 80], ];
カスタム関数に基づいて並べ替え
カスタム関数compare_students を使用して、2 つの学生レコードを姓と成績で比較できます。並べ替え:
function compare_students($a, $b) { if ($a['name'] == $b['name']) { return $a['score'] <=> $b['score']; } return strcmp($a['name'], $b['name']); }
usort() 関数を使用して配列を並べ替えます。
usort($students, 'compare_students');
UAC に基づく
PHP 7.4 で導入ユーザー定義匿名クラス (UAC) は、別のより簡潔な実装メソッドを提供します:uasort($students, function($a, $b) { if ($a['name'] == $b['name']) { return $a['score'] <=> $b['score']; } return strcmp($a['name'], $b['name']); });
Principle Revealed
Custom Functioncompare_students 2 つの入力配列
$a と
$b の順序を値に基づいて比較するコールバック関数。
strcmp() 関数を使用して生徒の名前を比較し、昇順に並べ替えます。
実用的なアプリケーション
ここで、$students 配列を出力すると、姓と成績でソートされた結果が得られます。 <div class="code" style="position:relative; padding:0px; margin:0px;"><pre class='brush:php;toolbar:false;'>print_r($students);</pre><div class="contentsignin">ログイン後にコピー</div></div>
出力結果:
Array ( [0] => Array ( [name] => Alice [score] => 90 ) [1] => Array ( [name] => Bob [score] => 85 ) [2] => Array ( [name] => Charlie [score] => 95 ) [3] => Array ( [name] => Dave [score] => 80 ) )
以上がPHP 配列の多次元ソートの黒魔術: その背後にある原理を明らかにするの詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。