php 二維數組按某個字段排序


主要用到兩個函數:

1.array_column() 返回輸入數組中某個單一列的值。php版本5.5以后自帶

這里提供個php版本低於5.5的兼容方式

if (!function_exists('array_column'))
{
    function array_column($input, $column_key=null, $index_key=null)
    {
        $result = array();
        $i = 0;
        foreach ($input as $v)
        {
            $k = $index_key === null || !isset($v[$index_key]) ? $i++ : $v[$index_key];
            $result[$k] = $column_key === null ? $v : (isset($v[$column_key]) ? $v[$column_key] : null);
        }
        return $result;
    }
}

2.array_multisort() 函數返回排序數組。您可以輸入一個或多個數組。函數先對第一個數組進行排序,接着是其他數組,如果兩個或多個值相同,它將對下一個數組進行排序。

具體代碼:[代碼取自:https://www.cnblogs.com/wenzheshen/]

<?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);
?>

 

參考文檔:

https://www.cnblogs.com/wenzheshen/p/9455554.html


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM