首頁  >  文章  >  後端開發  >  PHP 陣列按鍵分組的函數和應用指南

PHP 陣列按鍵分組的函數和應用指南

WBOY
WBOY原創
2024-04-30 10:36:011008瀏覽

PHP 陣列按鍵分組函數可以按指定規則對陣列按鍵分類,用於資料匯總、過濾和轉換。內建函數包括 array_column()、array_combine() 和 array_group_by()。例如,可以按使用者 ID 分組訂單或按後綴過濾金鑰,從而有效組織和處理陣列資料。

PHP 数组按键分组的函数和应用指南

PHP 數組按鍵分組函數和應用指南

數組按鍵分組是PHP 中一項強大的功能,它允許您根據自訂規則將數組按鍵分組。這在許多實際場景中非常有用,例如:

  • 資料匯總: 根據相同金鑰將陣列中的資料匯總在一起。
  • 資料過濾: 根據條件過濾陣列中具有特定金鑰的資料。
  • 資料轉換: 將陣列按鍵重新分組為其他鍵值對。

內建分組函數

PHP 提供了以下內建函數來實作陣列按鍵分組:

  • array_column():提取指定列(按鍵)的資料。
  • array_combine():將兩個陣列的鍵值對合併成一個新陣列。
  • array_group_by():將陣列按給定的鍵分組(PHP 8.1 引入)。

#實戰案例

案例1:按照用戶ID 分組訂單

$orders = [
    ['user_id' => 1, 'product_id' => 1, 'quantity' => 2],
    ['user_id' => 1, 'product_id' => 2, 'quantity' => 3],
    ['user_id' => 2, 'product_id' => 3, 'quantity' => 1],
];

$groupedOrders = array_group_by($orders, 'user_id');

執行後,$groupedOrders 將是一個多維數組,其中每個元素都是包含相同使用者ID 的訂單數組:

[
    1 => [
        ['user_id' => 1, 'product_id' => 1, 'quantity' => 2],
        ['user_id' => 1, 'product_id' => 2, 'quantity' => 3],
    ],
    2 => [
        ['user_id' => 2, 'product_id' => 3, 'quantity' => 1],
    ],
]

案例2:過濾具有特定後綴的金鑰

$settings = [
    'site.title' => 'My Site',
    'site.description' => 'A great website',
    'user.name' => 'John Doe',
];

$filteredSettings = array_filter($settings, function($key) {
    return strpos($key, '.site') !== false;
});

執行後,$filteredSettings 將包含僅帶有.site 後綴的金鑰的設定:

[
    'site.title' => 'My Site',
    'site.description' => 'A great website',
]

總結

##使用陣列按鍵分組函數可以輕鬆有效率地整理和處理數組資料。透過選擇正確的函數和應用自訂規則,您可以根據特定的需求靈活地操縱陣列。

以上是PHP 陣列按鍵分組的函數和應用指南的詳細內容。更多資訊請關注PHP中文網其他相關文章!

陳述:
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn