在開發過程中遇到不少對多維陣列某個值進行排序,有些人選擇遍歷方式處理,但是這種方式不可取。能用自帶的函式解決,盡量用自帶的(因為是底層語言實現的,最好的)
不少那麼多廢話,進入主題
<?php
$data = [
['id' => 21,'last_name' => 'gates'],
['id' => 18,'last_name' => 'red'],
['id' => 35,'last_name' => 'blue'],
];//根據欄位id對陣列$data進行降序排列
$last_names = array_column($data,'id');
array_multisort($last_names,sort_desc,$data);
print_r($data);
?>
結果:
array
( [0] => array
([id] => 35
[last_name] => blue
)[1] => array
([id] => 21
[last_name] => gates
)[2] => array
([id] => 18
[last_name] => red
))
array_multisort() 函式返回乙個排序陣列。您可以輸入乙個或多個陣列。函式先對第乙個陣列進行排序,接著是其他陣列,如果兩個或多個值相同,它將對下乙個陣列進行排序。
注釋:字串鍵名將被保留,但是數字鍵名將被重新索引,從 0 開始,並以 1 遞增。
注釋:您可以在每個陣列後設定排序順序和排序型別引數。如果沒有設定,每個陣列引數會使用預設值。
array_multisort(array1,sorting order,sorting type,array2,array3...)
引數描述
array1
必需。規定陣列。
sorting order
可選。規定排列順序。可能的值:
sorting type
可選。規定排序型別。可能的值:
array2
可選。規定陣列。
array3
可選。規定陣列。
返回值:
如果成功則返回 true,如果失敗則返回 false。
php 版本:
4+更新日誌:
排序型別 sort_natural 和 sort_flag_case 是在 php 5.4 中新增的。
排序型別 sort_locale_string 是在 php 5.3 中新增的。
PHP 根據二維陣列中的某個字段進行排序
首先了解下以下兩個函式 1.array column 返回輸入陣列中某個單一列的值。2.array multisort 函式返回排序陣列。您可以輸入乙個或多個陣列。函式先對第乙個陣列進行排序,接著是其他陣列,如果兩個或多 個值相同,它將對下乙個陣列進行排序。具體實現 例項 data array ar...
PHP 根據二維陣列中的某個字段進行排序
首先了解下以下兩個函式 1.array column 返回輸入陣列中某個單一列的值。2.array multisort 函式返回排序陣列。您可以輸入乙個或多個陣列。函式先對第乙個陣列進行排序,接著是其他陣列,如果兩個或多 個值相同,它將對下乙個陣列進行排序。具體實現 例項 5698,first na...
PHP 二維陣列根據某個字段排序
php view plain copy 二維陣列根據某個字段排序 功能 按照使用者的年齡倒序排序 author ruxing.li header content type text html charset utf 8 arrusers array array id 1,name 張三 age 25...