PHP で 2 次元配列をソートし、カスタム関数を共有する 3 つの方法_PHP チュートリアル
Jul 13, 2016 am 10:34 AM
ソートについては、通常、データベースまたは nosql (例: redis) を使用してソートし、それをプログラムに出力して直接使用します。ただし、場合によっては、PHP を介して配列を直接ソートし、データを PHP に保存する必要があります。そのうちの 1 つはオブジェクトと配列ですが、最も処理されるのは配列です。これは、非常に豊富な組み込み関数ライブラリがあるためです (実際、オブジェクトはある程度まで配列として理解することもできます)。特定の機能を大幅に達成します。一般的に使用されるシステム関数には、sort、asort、arsort、ksort、krsort などが含まれます。ここでは主に 2 次元配列をソートするための 2 つの方法について説明します。
1. PHP の組み込み array_multisort 関数を使用して並べ替えます
$data = array();
$data[] = array('volume' => 67, 'edition' => 2);
$data[] = array('volume' => 86, 'エディション' => 1);
$data[] = array('ボリューム' => 85, 'エディション' => 6);
$data[] = array('ボリューム' => 98, 'エディション' => 2);
$data[] = array('ボリューム' => 86, 'エディション' => 6);
$data[] = array('ボリューム' => 67, 'エディション' => 7);
的 // リストのリスト
$ volume [$ key] = $ row ['edition'];
}
;
array_multisort($volume, SORT_DESC, $edition, SORT_ASC, $data);
print_r($data);
出力結果:
[1] => [ボリューム] =>86
’’ ''(=>
array_multisort に関する公式ドキュメントにも、より詳細な手順が記載されています: http://www.php.net/manual/zh/function.array-multisort.php
2. カスタム関数の並べ替え 1
コードをコピーします
コードは次のとおりです:
<?php
$data = array();
$data[] = array('volume' => 67, 'edition' => 2);
$data[] = array('volume' => 86, 'エディション' => 1);
$data[] = array('ボリューム' => 85, 'エディション' => 6);
$data[] = 'ボリューム' => 98, 'エディション' => 2);
$data[] = array('ボリューム' => 86, 'エディション' => 6);
$data[] = 'ボリューム' => 67、「エディション」 => 7); // 列の列表を取得
foreach ($data as $key => $row)
{
$volume[$key] = $row['volume'];
$edition[$key] = $row[ 「エディション」];
}
print_r($ret);
/**
* @desc arraySort php の二次元配列ソートは、指定されたキーに従って配列をソートします
| desc
* @戻り配列
*/
function arraySort($arr, $keys, $type = 'asc') {
$keysvalue = $new_array = array();
foreach ($arr as $k => $ v){
$keysvalue[$k] = $v[$keys];
}
$type == 'asc' ? asort($keysvalue) : arsort($keysvalue);
reset($keysvalue);
foreach ($keysvalue as $k => $v) {
$new_array[$k] = $arr[$k];
}
return $new_array;
}
?>
出结果:
复制代
[音量] => 98
[版] => 2
)
[4] =>配列
( [ボリューム] => 86
[エディション] => 6
)
[1] =>配列
(
[エディション] => 1
)
[2] =>配列
(
[エディション] => 6
)
[5] =>配列
(
[エディション] => 7
)
[0] =>配列
(
[エディション] => 2
)
)
3. カスタム関数の並べ替え 2
次の関数は、指定されたキー値に従って指定された 2 次元配列を並べ替えます。まず関数の定義を見てみましょう:$keysvalue = $new_array = array();
foreach ($arr as $k=>$v){
$keysvalue[$k] = $v[$keys ];
}
if($type == 'asc'){
asort($keysvalue);
}else{
arsort($keysvalue);
}
reset($keysvalue);
foreach ($keysvalue as $ k=>$ v){
$new_array[$k] = $arr[$k];
}
return $new_array;
指定されたキー値に従って 2 次元配列をソートでき、昇順または降順も指定できます。使用例:
array('名前'=>'ラップトップ','ブランド'=>'レノボ','価格' =>4300),
array('name' =>'カミソリ','brand'=>'フィリップス','価格'=>3100),
array('name'=>'トレッドミル' ,'brand'=>'三ヘマトシ','price'=>4900),
array('name'=>'時計','brand'=>'カシオ','価格'=> 960),
array('name'=>'LCD TV','brand'=>'Sony','price'=>6299),
array('name'=>'レーザー プリンター', 'ブランド'=>'HP','価格'=>1200)
);
$ShoppingList = array_sort($array,'price');print_r($ShoppingList);
上記は、2 次元配列 $array を 'price' に従って低位から高位にソートすることです。
http://www.bkjia.com/PHPjc/751507.html

人気の記事

人気の記事

ホットな記事タグ

メモ帳++7.3.1
使いやすく無料のコードエディター

SublimeText3 中国語版
中国語版、とても使いやすい

ゼンドスタジオ 13.0.1
強力な PHP 統合開発環境

ドリームウィーバー CS6
ビジュアル Web 開発ツール

SublimeText3 Mac版
神レベルのコード編集ソフト(SublimeText3)

ホットトピック











Ubuntu および Debian 用の PHP 8.4 インストールおよびアップグレード ガイド

PHP 開発用に Visual Studio Code (VS Code) をセットアップする方法
