特定のフィールドに従ってソートされたPHPの2次元配列

WBOY
リリース: 2016-06-13 11:58:45
オリジナル
1116 人が閲覧しました

PHP の 2 次元配列を特定のフィールドに従ってソートする

この記事で実装する関数は、以前のプロジェクトで発生した MySQL の ORDER BY と似ています。

要件: 2 つの異なるテーブルから 4 つのデータを取得し、配列に統合 (array_merge) し、データに基づいて並べ替えます。最初の 4 項目は作成時間の降順で表示されます。

この要件が発生した場合、ORDER BY では問題を解決できません。そこでPHPのマニュアルを調べて以下の方法を見つけたのでメモしておきます。

くだらない話はやめてください。コードは次のとおりです。リストは次のとおりです:

<?php/** * 二维数组根据某个字段排序 * 功能:按照用户的年龄倒序排序 * @author ruxing.li */header(&#39;Content-Type:text/html;Charset=utf-8&#39;);$arrUsers = array(    array(            &#39;id&#39;   => 1,            'name' => '张三',            'age'  => 25,    ),    array(            'id'   => 2,            'name' => '李四',            'age'  => 23,    ),    array(            'id'   => 3,            'name' => '王五',            'age'  => 40,    ),    array(            'id'   => 4,            'name' => '赵六',            'age'  => 31,    ),    array(            'id'   => 5,            'name' => '黄七',            'age'  => 20,    ),); $sort = array(        'direction' => 'SORT_DESC', //排序顺序标志 SORT_DESC 降序;SORT_ASC 升序        'field'     => 'age',       //排序字段);$arrSort = array();foreach($arrUsers AS $uniqid => $row){    foreach($row AS $key=>$value){        $arrSort[$key][$uniqid] = $value;    }}if($sort['direction']){    array_multisort($arrSort[$sort['field']], constant($sort['direction']), $arrUsers);}var_dump($arrUsers);/*输出结果:array (size=5)  0 =>     array (size=3)      'id' => int 5      'name' => string '黄七' (length=6)      'age' => int 20  1 =>     array (size=3)      'id' => int 2      'name' => string '李四' (length=6)      'age' => int 23  2 =>     array (size=3)      'id' => int 1      'name' => string '张三' (length=6)      'age' => int 25  3 =>     array (size=3)      'id' => int 4      'name' => string '赵六' (length=6)      'age' => int 31  4 =>     array (size=3)      'id' => int 3      'name' => string '王五' (length=6)      'age' => int 40*/
ログイン後にコピー

この記事CSDN からの転載です。出典を明記してください。元のアドレス: http://blog.csdn.net/liruxing1715/article/details/28265495

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