Computer >> 컴퓨터 >  >> 프로그램 작성 >> PHP

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',
   ),
)