ホームページ  >  記事  >  バックエンド開発  >  特定のフィールドに応じた PHP 2 次元配列ソートの具体的な実装_PHP チュートリアル

特定のフィールドに応じた PHP 2 次元配列ソートの具体的な実装_PHP チュートリアル

WBOY
WBOYオリジナル
2016-07-13 10:29:03877ブラウズ

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

要件: 2 つの異なるテーブルから 4 つのデータを取得し、配列に統合 (array_merge) し、データの作成時間に従って最初の 4 つのデータを降順に並べ替えます。

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

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

コードをコピーします コードは次のとおりです:

/**
* 特定のフィールドに従って 2 次元配列を並べ替えます
* 機能: ユーザーの年齢によって逆順に並べ替えます
* @author ruxing.li
*/
header ('Content-Type: text/ html;Charset=utf-8');
$arrUsers = array(
'id' => 1,
'name' => '张三',
' age' => 25,
),
array(
'id' => 2,
'name' => '李思',
'age' => 23,
),
array(
'id' => 3,
'name' => '王五',
'年齢' => 40,
),
'id' => 4,
'name' => ; '趙劉',
' 年齢' => 31,
),
array(
'id' => 5,
'名前' => '黄七',
' 年齢' => 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' =>
'name' => 文字列 '黄七' (length=6)
'age' => int 20
1 =>
array (size=3)
'id' => ' => 文字列 '李思' (長さ=6)
'年齢' => int 23
2 =>
配列 (サイズ=3)
'id' => int 1
'名前' => ; 文字列 '张三' (長さ =6)
'年齢' => int 25
配列 (サイズ = 3)
'名前' =>趙劉' (length=6)
'age' => int 31
4 =>
'id' => int 3
'name' => (長さ=6)
'年齢' => int 40

*/





http://www.bkjia.com/PHPjc/779572.html

www.bkjia.com

tru​​e

http://www.bkjia.com/PHPjc/779572.html
技術記事

この記事で実装する関数は、以前のプロジェクトで発生した MySQL の ORDER BY に似ています。 要件: 2 つの異なるテーブルから 4 つのデータを取得し、その後...
声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。