PHPで複数のキーで多次元配列を並べ替える
array_multisort関数を使用して、複数のキーに基づいて多次元配列を並べ替えることができます-
例
$my_list = array( array('ID' => 1, 'title' => 'data one', 'event_type' => 'one'), array('ID' => 2, 'title' => 'data two', 'event_type' => 'zero'), array('ID' => 3, 'title' => 'data three', 'event_type' => 'one'), array('ID' => 4, 'title' => 'data four', 'event_type' => 'zero') ); # The list of sorted columns and their data can be obtained. This will be passed to the array_multisort function. $sort = array(); foreach($my_list as $k=>$v) { $sort['title'][$k] = $v['title']; $sort['event_type'][$k] = $v['event_type']; } # It is sorted by event_type in descending order and the title is sorted in ascending order. array_multisort($sort['event_type'], SORT_DESC, $sort['title'], SORT_ASC,$my_list);
PHPバージョン5.5.0の場合-
array_multisort(array_column($my_list, 'event_type'), SORT_DESC, array_column($my_list, 'title'), SORT_ASC, $my_list);
出力
これにより、次の出力が生成されます-
array ( 0 => array ( 'ID' => 4, 'title' => 'data four', 'event_type' => 'zero', ), 1 => array ( 'ID' => 3, 'title' => 'data two', 'event_type' => 'zero', ), 2 => array ( 'ID' => 1, 'title' => 'data one', 'event_type' => 'one', ), 3 => array ( 'ID' => 2, 'title' => 'data three', 'event_type' => 'one', ), )
-
PHPのsort()関数
PHPのsort()関数は、配列を昇順で並べ替えます。 構文 sort(arr, flag) パラメータ 到着 −並べ替える配列。 フラグ − 0 =SORT_REGULAR −デフォルト。通常どおりアイテムを比較します。タイプを変更しないでください。 1 =SORT_NUMERIC −アイテムを数値で比較する 2 =SORT_STRING −アイテムを文字列として比較する 3 =SORT_LOCALE_STRING −現在のロケールに基づいて、アイテムを文字列として比較します 4 =SORT_NATURAL −自然順序付けを使用
-
PHPのarray()関数
PHPのarray()関数は配列を作成します。 PHPでは配列には3つのタイプがあります。 インデックス付き配列- 数値インデックス付きの配列です 連想配列- 名前付きキーを持つ配列です 多次元配列- 1つ以上のアレイを持つアレイです 構文 // array with numeric index i.e. Indexed arrays array(value1,value2...); // array with named keys i.e. associative arrays array(key1 => value1, key2 => value2...