當前位置: 首頁> 最新文章列表> 如何使用array_combine 將兩個列表合併成字典?詳細實戰教程

如何使用array_combine 將兩個列表合併成字典?詳細實戰教程

M66 2025-06-07

在PHP 中, array_combine()函數非常適合將兩個數組合併成一個關聯數組(即字典)。這個函數接收兩個參數:第一個是鍵數組,第二個是值數組,然後返回一個以第一個數組中的元素作為鍵,第二個數組中的元素作為值的數組。

函數原型

array_combine(array $keys, array $values): array|false
  • $keys :鍵數組,包含了所有用作字典鍵的元素。

  • $values :值數組,包含了所有用作字典值的元素。

返回值:

  • 返回一個關聯數組,其中$keys中的元素作為鍵, $values中的元素作為值。

  • 如果兩個數組的元素數量不相等,或者其中一個數組為空,則函數返回false

實戰示例

假設我們有兩個列表,一個包含學生的名字,另一個包含學生的成績,我們希望將它們合併成一個字典,方便查詢每個學生的成績。

 <?php

// 學生名字數組
$students = ['Alice', 'Bob', 'Charlie', 'David'];

// 學生成績數組
$scores = [85, 92, 78, 88];

// 使用 array_combine 將兩個數組合併成一個字典
$student_scores = array_combine($students, $scores);

// 輸出結果
if ($student_scores !== false) {
    echo "學生成績字典:\n";
    print_r($student_scores);
} else {
    echo "數組長度不一致,無法合併!\n";
}

?>

代碼解析

  1. 我們首先定義了兩個數組: $students存儲學生的名字, $scores存儲對應的成績。

  2. 然後使用array_combine()將這兩個數組合併成一個字典,鍵是學生的名字,值是學生的成績。

  3. 如果合併成功,返回的是一個關聯數組,格式如下:

     Array
    (
        [Alice] => 85
        [Bob] => 92
        [Charlie] => 78
        [David] => 88
    )
    
  4. 如果兩個數組的長度不相同, array_combine()會返回false ,因此我們要檢查結果以避免錯誤。

錯誤處理與註意事項

  1. 數組長度不一致:如果兩個數組的長度不同, array_combine()會返回false 。在實際應用中,我們通常需要先檢查數組的長度,或者在調用之前確保它們的長度是相同的。

  2. 空數組:如果任意一個數組為空,函數也會返回false 。在處理數據時,請務必確保傳入的數組不為空。

  3. 鍵的唯一性:合併後的字典鍵必須是唯一的。如果有重複的鍵,後面的值會覆蓋前面的值。

示例2:檢查數組長度

為了避免因數組長度不一致導致錯誤,我們可以在使用array_combine()之前,手動檢查兩個數組的長度:

 <?php

$students = ['Alice', 'Bob', 'Charlie', 'David'];
$scores = [85, 92, 78];

// 檢查數組長度是否一致
if (count($students) === count($scores)) {
    $student_scores = array_combine($students, $scores);
    print_r($student_scores);
} else {
    echo "學生名單與成績列表長度不一致,無法合併!\n";
}

?>

常見應用場景

  • 配對數據:當你需要將兩個相關的數組(如名字和電話號碼)配對時, array_combine()是一個非常高效的工具。

  • 表單處理:在接收表單數據時,可能會有一個字段名稱數組和一個字段值數組,你可以使用array_combine()來合併它們,形成一個便於操作的關聯數組。

小結

array_combine()函數非常適合將兩個一一對應的數組合併成一個關聯數組(字典),常用於配對數據、表單處理等場景。在使用時,要確保兩個數組的長度一致,否則函數會返回false ,並且確保鍵是唯一的。