ホームページ  >  記事  >  バックエンド開発  >  PHPでの配列マルチソートのソート原理の詳細な例

PHPでの配列マルチソートのソート原理の詳細な例

WBOY
WBOYオリジナル
2016-07-25 08:52:16971ブラウズ
  1. $data[] = array('volume' => 67, 'edition' => 2);
  2. $data[] = array('volume' => 86, 'edition' => 1);
  3. $data[] = array('volume' => 85, 'edition' => 6);
  4. $data[] = array('volume' => 98, 'エディション' => 2);
  5. $data[] = array('ボリューム' => 86, 'エディション' => 6);
  6. $data[] = アレイ('ボリューム' => 67, 'edition' => 7);
  7. ?>
コードをコピー

例 2:

  1. $a = array(1,2,3);
  2. $b = array(3);
  3. // データをボリュームに従って降順に、次に従って昇順に並べます。 edition
  4. // $data は最後のパラメータとして使用され、共通キーでソートされます
  5. array_multisort($a, $b, $data);// 1 次元内の配列の数が異なります
  6. var_dump( $data);
  7. ? >
コードをコピー

上記のテスト コードは、配列の数が矛盾していることを示します。 警告: array_multisort(): G:wwwtestindex.php の 15 行目で配列のサイズが一致していません

別の例を見てください:

  1. $data[] = array('volume' => 67, 'edition' => 2);
  2. $data[] = array('volume' => 86 , 'エディション' => 1);
  3. $data[] = array('ボリューム' => 85, 'エディション' => 6);
  4. $data[] = アレイ('ボリューム' => 98 , 'エディション' => 2);
  5. $data[] = array('ボリューム' => 86, 'エディション' => 6);
  6. $data[] = アレイ('ボリューム' => 67 , 'edition' => 7, 3, 4,4);//2 次元の数が違います
  7. ?>
コードをコピー

コード 2:

  1. $a = array(11,2,3,4,5,6);
  2. $b = array(3,3,3,3,3,3);
  3. / /結果から、11 に対応する配列 (67,7,3,4,4) が同じ順序で表示されることがわかります。
  4. // データをボリュームに従って降順に、エディションに従って昇順に並べます
  5. // 最後のパラメータとして $data を使用し、共通のキーで並べ替えます
  6. array_multisort($a, $b, $data);
  7. var_dump( $a,$data);
  8. ?>
コードをコピー

上記の結果から次のことがわかります。 配列パラメータは同じ数の 1 次元を持つ必要があります。 次に、各配列の対応する位置 (同じキーではありませんが、$b(99=>4) の 4 に対応する $a(1=>4) などの自然な位置に対応することに注意してください。それらの位置はすべて最初のものであり、キー (1,99) の対応関係ではなく、対応する位置の値が互いに等しいときに竹竿に装着されるようなものです。それらの値を調整する必要があります。同じ結果になります。「竹の棒」の他の値は垂直に移動するように見えます。

カテゴリー:

$a $b $c 4=>7 8=>10 '999' => 0 9=>9 0=>1 999=>9 0=> 2 9=> 3 9999=> 7

$a を押して 7 と 9 を入れ替えると、$b で 10 と 1 が入れ替えられ、$c で 0 と 9 が入れ替えられます。 つまり、上の 3 つの配列のような関係があり、同じ色のものは同じ「前面」にあり、そのうちの 1 つが変更されると、全員が一緒に位置を変更します。

これらを紹介しましょう。マルチソート配列ソートの使用法を皆さんが理解するのに役立つことを願っています。

>>> 詳細については、PHP 配列ソートメソッドの完全なリストをご覧ください



声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。