PHPでは、2 D配列のフィールドに基づいてソートされます.

2904 ワード


2 D配列をフィールドに基づいてソートするには、配列のループコントラストで実現するのが一般的です.ここではPHP関数によって直接実現されるより簡単な方法を紹介する.array_Multisort():複数の配列を一度にソートしたり、1次元または多次元に基づいて多次元配列をソートしたりすることができます.詳しくはPHPマニュアルを参照してください.https://www.php.net/manual/zh/function.array-multisort.php
例:
1、単一フィールドのソート:
$data = [
    ['id' => 1, 'name' => '  ', 'sort' => 60],
    ['id' => 2, 'name' => '  ', 'sort' => 40],
    ['id' => 3, 'name' => '  ', 'sort' => 80],
];

//            
$sort = array_column($data, 'sort');
//   sort        SORT_ASC     SORT_DESC    
array_multisort($sort, SORT_ASC, $data);
//     
var_dump($data);

2、複数のフィールドの並べ替え:
$data = [
    ['id' => 1, 'name' => '  ', 'sort' => 60],
    ['id' => 2, 'name' => '  ', 'sort' => 60],
    ['id' => 3, 'name' => '  ', 'sort' => 80],
];

//            
$sort = array_column($data, 'sort');
$name = array_column($data, 'name');
//    sort    ,   name    
array_multisort($sort, SORT_ASC, $name, SORT_DESC, $data);
//     
var_dump($data);