ホームページ > バックエンド開発 > PHPチュートリアル > PHP で 2 次元連想配列のソートを実装する方法

PHP で 2 次元連想配列のソートを実装する方法

WBOY
リリース: 2016-06-13 13:00:12
オリジナル
1011 人が閲覧しました

PHP で 2 次元連想配列のソートを実装する方法
たとえば、配列は次のようになります:

<br />
  $example = array( array('b'=>7, 'rsd'=>6, 'gdd'=>3),<br />
                    array('d'=>5, 'ess'=>8, 'ffs'=>5),<br />
	            array('c'=>2, 'sdv'=>5, 'vfs'=>6),<br />
	            array('a'=>8, 'hds'=>4, 'rfs'=>9));		<br />
ログイン後にコピー


PHP システム関数を使用する代わりに、uasort() または uksort() を使用してカスタム関数を作成して渡します。
関数compare($X, $Y)
次のように uasort($example, 'compare') を使用します。
この比較はどうやって書くのでしょうか?

結合ではない 2 次元配列の比較の書き方を知っています。
<br />
  function compare($x, $y)<br />
  {<br />
	  if($x[0] == $y[0])<br />
	    return 0;<br />
	  elseif($x[0] < $y[0])<br />
	    return -1;<br />
	  else<br />
	    return 1;<br />
  }<br />
ログイン後にコピー

-----解決策--------------------------------
手動 array_multisort
例 4 を見てください
------解決策------------
例 4 データベースの結果の並べ替え


この例では、データ配列内の各セルがテーブル内の行を表します。これは、データベースに記録される典型的なデータのコレクションです。


例のデータは次のとおりです:


ボリューム
------解決策---------
エディション
-------+----------
67
------解決策--------------------------------
2
86
------解決策--------------------------------
1
85
------解決策--------------------------------
6
98
------解決策--------------------------------
2
86
------解決策--------------------------------
6
67
------解決策--------------------------------
7


データはすべて data という名前の配列に格納されます。これは通常、mysql_fetch_assoc() などのループを通じてデータベースから取得されます。


$data[] = array('volume' => 67, 'edition' => 2);
$data[] = array('volume' => 86, 'edition' => 1);
$data[] = array('volume' => 85, 'edition' => 6);
$data[] = array('volume' => 98, 'edition' => 2);
$data[] = array('volume' => 86, 'edition' => 6);
$data[] = array('volume' => 67, 'edition' => 7);
?>


この例では、ボリュームは降順でソートされ、エディションは昇順でソートされます。


これで行を含む配列ができましたが、array_multisort() には列を含む配列が必要なので、次のコードを使用して列を取得し、並べ替えます。


// 列のリストを取得します
foreach ($data as $key => $row) {
$volume[$key] = $row['volume'];
$edition[$key] = $row['edition'];
}

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