値による多次元配列の並べ替え
多次元配列内の特定のキー値によるデータの並べ替えは、一般的なタスクです。これは、ユーザー定義の並べ替え関数を usort() または uasort() 関数と組み合わせて使用することで実現できます。
「order」キーで配列を並べ替えるには、次の手順に従うことができます。 :
function sortByOrder($a, $b) { if ($a['order'] > $b['order']) { return 1; } elseif ($a['order'] < $b['order']) { return -1; } return 0; }
usort($myArray, 'sortByOrder');
usort($myArray, function($a, $b) { if ($a['order'] > $b['order']) { return 1; } elseif ($a['order'] < $b['order']) { return -1; } return 0; });
usort($myArray, function($a, $b) { return $a['order'] <=> $b['order']; });
usort($myArray, fn($a, $b) => $a['order'] <=> $b['order']);
多次元ソート:
ソートを複数の次元に拡張するには、ソート関数を再帰的に使用できます。
usort($myArray, function($a, $b) { $retval = $a['order'] <=> $b['order']; if ($retval == 0) { $retval = $a['suborder'] <=> $b['suborder']; if ($retval == 0) { $retval = $a['details']['subsuborder'] <=> $b['details']['subsuborder']; } } return $retval; });
キーの保存関連:
並べ替え中にキーの関連付けを維持するには、usort() の代わりに uasort() を使用します。配列ソート関数の比較については、PHP マニュアルを参照してください。
以上がPHP で多次元配列を値で並べ替えるにはどうすればよいですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。