次の PHP 配列、配列の内容があります。
-
- $list = array(
- array(2,3,5),
- array(2,5,24),
- array(3,8,6),
- array(3,2,10) ,
- 配列(4,7,20),
- 配列(4,1,15),
- 配列(6,4,10),
- 配列(7,9,20),
- );
コードをコピー
表現の便宜上、3列の数字をそれぞれABCの3列と呼びます。
要件: デフォルトでは、列 A が主な並べ替え方法になります。列 A が同じ場合、同じ要素が列 C で逆の順序で並べ替えられます。 B列は実際にはソートには関与しませんが、実務では役立つのでこれも記載します。
方法 1:
-
- $a = $c = array();
- foreach($list as $val){
- $a[] = $val[0] //列 a
- $c; [] = $val[2]; //列 c
- }
- //SQL と同様に、列 a を昇順でインストールし、列 b を降順でインストールします。orderby a asc,b desc
- array_multisort($a, SORT_ASC, $c, SORT_DESC , $list);
- print_r($list);
コードをコピー 方法 2:
- for($j=0;$jfor($i=count($list)-1;$i>$j ;$i--){
- if($list[$i][0] == $list[$i-1][0] && $list[$i][2] > $list[$i- 1][2])
- list($list[$i],$list[$i-1]) = array($list[$i-1],$list[$i]);
- }
- }
コードをコピー
|