ホームページ > バックエンド開発 > PHPチュートリアル > PHPで指定した列で多次元配列をソートするにはどうすればよいですか?

PHPで指定した列で多次元配列をソートするにはどうすればよいですか?

Mary-Kate Olsen
リリース: 2024-12-29 22:39:33
オリジナル
404 人が閲覧しました

How to Sort a Multidimensional Array by a Specified Column in PHP?

PHP での指定した列による多次元配列の並べ替え

PHP で特定の列による多次元配列を並べ替えるには、組み込み関数を使用します。 PHP 関数 usort または uasort 内。並べ替えの鍵は、配列要素の順序を決定するカスタム比較関数を提供することです。

並べ替え用のカスタム比較関数

カスタム比較関数は 2 つの要素を受け取ります入力として配列を取得し、整数を返します:

  • 最初の要素が「大きい」とみなされる場合は正の整数
  • 最初の要素が 2 番目の要素より「小さい」とみなされる場合は負の整数。
  • 要素が等しいとみなされる場合はゼロ。

単一列による並べ替え

という多次元配列があるとします。 $data ここで、各要素は複数の列を持つレコードを表します。 'name' 列で配列を並べ替えるには、次のコードを使用します。

usort($data, function($a, $b) {
  return strcmp($a['name'], $b['name']);
});
ログイン後にコピー

このカスタム比較関数は、strcmp 関数を使用して、次の値を比較します。各要素の 'name' 列。並べ替えられた配列には、'name' 列に基づいてアルファベット順に並べられた要素が含まれます。

複数の列による並べ替え

複数の列で並べ替えるには、追加のパラメーターをカスタム比較関数に渡します。たとえば、'number'、次に 'name' で並べ替える場合:

usort($data, function($a, $b) {
  if ($a['number'] == $b['number']) {
    return strcmp($a['name'], $b['name']);
  }
  return $a['number'] - $b['number'];
});
ログイン後にコピー

高度な機能

次の詳細を指定することもできます機能:

  • 逆ソート: 並べ替え順序を逆にするには、比較関数の 2 番目のパラメーターを SORT_DESC に設定します。
  • カスタム投影: 列の値が直接比較できない場合は、変換する 3 番目のパラメーターとして投影関数を指定します。

以上がPHPで指定した列で多次元配列をソートするにはどうすればよいですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

ソース:php.cn
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
著者別の最新記事
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート