ホームページ > バックエンド開発 > PHPの問題 > PHPの配列学習で2次元配列をソートする方法(2通り)

PHPの配列学習で2次元配列をソートする方法(2通り)

青灯夜游
リリース: 2023-03-12 07:56:02
オリジナル
8988 人が閲覧しました

前回の記事「PHP」 「配列学習: 要素フラグメントをインターセプトする方法 (2 つの方法)」では、配列をインターセプトして部分的な配列要素フラグメントを返す方法を紹介しました。 2つの方法。今回はPHP配列の勉強の続きとして、2次元配列の要素をソートする方法についてお話します。 詳細はこちらからご覧ください~

→関連する推奨事項: PHP 配列学習シリーズの概要 (継続的に更新されます~)>>

以前に何かについて学びました。次元配列のいくつかのソート方法 PHP には、1 次元配列の降順ソートと昇順ソートを実装するための組み込み関数が多数あることはご存知でしょう。では、2 次元配列にもソートを実装するための組み込み関数があるのでしょうか?

答えは「はい」です。 PHP には、2 次元配列のソートに使用できる組み込みの array_multisort() 関数があります。以下に、array_multisort() 関数を使用して 2 次元配列をソートする 2 つの方法を紹介します。

方法 1: foreach ループ array_multisort() 関数

<?php
$data = array(
  array(
    &#39;id&#39; => 5698,
    &#39;first_name&#39; => &#39;Bill&#39;,
    &#39;last_name&#39; => &#39;Gates&#39;,
  ),
  array(
    &#39;id&#39; => 3809,
    &#39;first_name&#39; => &#39;Mark&#39;,
    &#39;last_name&#39; => &#39;Zuckerberg&#39;,
  ),
  array(
    &#39;id&#39; => 4767,
    &#39;first_name&#39; => &#39;Steve&#39;,
    &#39;last_name&#39; => &#39;Aobs&#39;,
  )
);
    // 取得列的列表
    foreach ($data as $key => $row)
    {
        $ID[$key]  = $row[&#39;id&#39;];
        $FirstName[$key] = $row[&#39;first_name&#39;];
				$LastName[$key] = $row[&#39;last_name&#39;];
    }

    array_multisort($ID, SORT_ASC, $data);

var_dump($data);
?>
ログイン後にコピー

コードを分析する:

  • foreach ループを使用して、同じフィールド データをまとめて、var_dump($ID)var_dump($FirstName)var_dump($LastName) を使用して各フィールド データを出力してみます。

    PHPの配列学習で2次元配列をソートする方法(2通り)

  • 2 つの「id#」に従って、array_multisort($ID, SORT_ASC, $data) を使用します。 -次元配列 $data ##"その列のフィールドは昇順で並べ替えられます。

  • 出力結果は次のようになります:

PHPの配列学習で2次元配列をソートする方法(2通り)ID に基づいて降順に並べ替える場合は、2 番目の値を設定するだけです。関数のパラメータを

SORT_DESC

に追加するだけです: <div class="code" style="position:relative; padding:0px; margin:0px;"><pre class="brush:php;toolbar:false">array_multisort($ID, SORT_DESC, $data);</pre><div class="contentsignin">ログイン後にコピー</div></div>出力結果:

PHPの配列学習で2次元配列をソートする方法(2通り)last_name に基づいて並べ替えたい場合は、関数を最初に配置します。パラメータを $LastName array

array_multisort($LastName, SORT_DESC, $data);
ログイン後にコピー

に設定するだけです。出力結果:

PHPの配列学習で2次元配列をソートする方法(2通り)array_multisort() 関数を見てみましょう:


array_multisort() 関数は、ソートされた配列を返します。ユーザーは 1 つ以上の配列を入力でき、関数は最初の配列を並べ替え、次に他の配列を並べ替えます。2 つ以上の値が同じ場合は、次の配列を並べ替えます。構文は次のとおりです。

array_multisort(array1,sorting order,sorting type,array2,array3...)
ログイン後にコピー

PHPの配列学習で2次元配列をソートする方法(2通り)##方法 2: array_column() 関数 array_multisort() 関数

方法 1 では、次のように使用します。 foreach ループを使用して同じフィールドのデータを取得しますが、これは少し複雑です。実際、array_column() 関数を使用してこの操作を実現できます。 array_column() 関数は、入力配列内の単一列の値を返すことができます。

<?php
$data = array(
  array(
    &#39;id&#39; => 5698,
    &#39;first_name&#39; => &#39;Bill&#39;,
    &#39;last_name&#39; => &#39;Gates&#39;,
  ),
  array(
    &#39;id&#39; => 3809,
    &#39;first_name&#39; => &#39;Mark&#39;,
    &#39;last_name&#39; => &#39;Zuckerberg&#39;,
  ),
  array(
    &#39;id&#39; => 4767,
    &#39;first_name&#39; => &#39;Steve&#39;,
    &#39;last_name&#39; => &#39;Aobs&#39;,
  )
);
//根据字段id对数组$data进行升序排列
$key = array_column($data,&#39;id&#39;);
array_multisort($key,SORT_ASC,$data);

var_dump($data);
?>
ログイン後にコピー

出力結果:

どのフィールドで並べ替えたい場合は、PHPの配列学習で2次元配列をソートする方法(2通り)array_column($data,'id')## を使用します。 # function 2 番目のパラメータをそのフィールド (キー値) に置き換えるだけです。たとえば、フィールド「first_name」に基づいて降順に並べ替える場合は、次のように実行できます。

$key = array_column($data,&#39;first_name&#39;);
array_multisort($key,SORT_DESC,$data);
ログイン後にコピー
出力結果:

array_column( ) 関数を見てみましょう:

PHPの配列学習で2次元配列をソートする方法(2通り)array_column() 入力配列内の 1 つの列の値を返します。構文形式は次のとおりです:

array_column(array,column_key,index_key);
ログイン後にコピー

戻り値: 配列を返します。配列の値は、入力配列の 1 つの列の値です。

PHPの配列学習で2次元配列をソートする方法(2通り)わかりました。これですべてです。他に知りたいことがあれば、これをクリックしてください。 → →

php ビデオ チュートリアル

最後に、PHP 配列に関する無料のビデオ チュートリアルをお勧めします。PHP 関数 配列 配列関数のビデオ説明、ぜひ学んでください。

以上がPHPの配列学習で2次元配列をソートする方法(2通り)の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

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