1. 程式人生 > >根據二維陣列中的某個欄位進行排序,陣列函式array_multisort()

根據二維陣列中的某個欄位進行排序,陣列函式array_multisort()

1.array_column() 返回輸入陣列中某個單一列的值。

2.array_multisort() 函式返回排序陣列。您可以輸入一個或多個數組。函式先對第一個陣列進行排序,接著是其他陣列,如果兩個或多

個值相同,它將對下一個陣列進行排序。

 具體來實現的例子1:

$resme_lists = 
Array
(
    [0] => Array
        (
            [status] => 6
            [create_time] => 2018-11-26 17:01:13
        )

    [1] => Array
        (
            [status] => 1
            [create_time] => 2018-11-26 16:49:18
        )

    [2] => Array
        (
            [status] => 3
            [create_time] => 2018-11-12 16:17:17
        )

    [3] => Array
        (
            [status] => 8
            [create_time] => 2018-07-22 22:28:25
        )

);//這是我從表裡查出來的資料

  //把時間變成時間戳
  foreach ($resme_lists as $k=>$v){
      $resme_lists[$k]['create_time'] = strtotime($v['create_time']);
  }
 //進行排序
  $last_names = array_column($resme_lists,'create_time');
  array_multisort($last_names,SORT_DESC,$resme_lists);

  //變回時間格式
  foreach ($resme_lists as $k=>$v){
  $resme_lists[$k]['create_time'] = date('Y-m-d H:i:s',$v['create_time']);
  }


具體來實現的例子2:

<?php
$data = array(
  array(
    'id' => 5698,
    'first_name' => 'Bill',
    'last_name' => 'Gates',
  ),
  array(
    'id' => 4767,
    'first_name' => 'Steve',
    'last_name' => 'Aobs',
  ),
  array(
    'id' => 3809,
    'first_name' => 'Mark',
    'last_name' => 'Zuckerberg',
  )
);

//根據欄位last_name對陣列$data進行降序排列
$last_names = array_column($data,'last_name');
array_multisort($last_names,SORT_DESC,$data);

var_dump($data);
?>