PHP提供了豐富的數組排序函數,包括sort()、rsort()、asort()、arsort()用於單維數組排序;對於多維數組排序,可使用array_multisort()自訂函數實現,透過指定多個列來按升序或降序進行排序。
PHP 陣列排序:從單一維度到多維的深入探索
##簡介
陣列排序在程式設計中至關重要,可用於組織和篩選資料。 PHP 提供了幾個函數來對陣列進行排序,包括sort(),
rsort(),
asort(),
arsort(),
natsort(),
natcasesort() 等。
單一維度數組排序
對單維數組進行排序很簡單,可以透過以下函數:
<?php
$products = array(
"Apple" => "iPhone",
"Samsung" => "Galaxy",
"Google" => "Pixel",
);
asort($products);
print_r($products);
輸出:
Array ( [Apple] => iPhone [Google] => Pixel [Samsung] => Galaxy )多維數組排序
有時,我們需要對多維數組進行排序。 PHP 中沒有開箱即用的函數可以做到這一點,但我們可以透過自訂函數變通實作:
function array_multisort($array, $columns) { $temp = []; foreach($array as $k => $v) { $temp[$k] = []; foreach($columns as $key) { $temp[$k][$key] = $v[$key]; } } array_multisort($temp, SORT_ASC); foreach($temp as $k => $v) { foreach($columns as $key) { $array[$k][$key] = $v[$key]; } } return $array; }實戰案例:按產品名稱和價格對多維數組排序
<?php
$products = array(
array(
"name" => "iPhone",
"price" => 1000,
),
array(
"name" => "Galaxy",
"price" => 800,
),
array(
"name" => "Pixel",
"price" => 900,
),
);
array_multisort($products, ['name', 'price']);
print_r($products);
輸出:
Array ( [0] => Array ( [name] => Galaxy [price] => 800 ) [1] => Array ( [name] => iPhone [price] => 1000 ) [2] => Array ( [name] => Pixel [price] => 900 ) )
以上是PHP數組排序:從單一維度到多維的深入探索的詳細內容。更多資訊請關注PHP中文網其他相關文章!