當前位置: 首頁> 最新文章列表> array_combine 搭配array_column 做數據重組

array_combine 搭配array_column 做數據重組

M66 2025-06-07

在PHP 中, array_combinearray_column是兩個非常常用的數組處理函數。它們各自有不同的用途,但將它們結合起來使用時,可以實現非常強大的數據重組功能。接下來,我們將通過一個簡單的例子,演示如何使用這兩個函數來對數據進行重組。

函數介紹

array_combine

array_combine函數用於創建一個新的關聯數組,鍵是一個數組的元素,值是另一個數組的元素。使用該函數時,要求兩個數組的元素數量相同,否則會拋出警告。

函數原型:

 array_combine(array $keys, array $values): array
  • $keys :作為新數組的鍵。

  • $values :作為新數組的值。

array_column

array_column函數用於從一個多維數組中提取指定列的數據,並返回一個數組。它非常適合用來提取二維數組中的某一列,通常用於從數據庫查詢結果中提取特定字段。

函數原型:

 array_column(array $input, mixed $column_key, mixed $index_key = null): array
  • $input :要操作的輸入數組。

  • $column_key :要提取的列的鍵名。

  • $index_key (可選):用作結果數組的索引的鍵名。

示例:結合使用array_combinearray_column

假設我們有一組關於員工的數據,其中包含員工的姓名、職位和ID。我們希望將這些數據重組為一個以員工ID為鍵、員工姓名為值的關聯數組。

原始數據:

 $employees = [
    ['id' => 1, 'name' => 'Alice', 'position' => 'Developer'],
    ['id' => 2, 'name' => 'Bob', 'position' => 'Designer'],
    ['id' => 3, 'name' => 'Charlie', 'position' => 'Manager']
];

目標:

我們想要創建一個以員工id為鍵,員工name為值的新數組。

代碼實現:

 <?php
// 原始數據
$employees = [
    ['id' => 1, 'name' => 'Alice', 'position' => 'Developer'],
    ['id' => 2, 'name' => 'Bob', 'position' => 'Designer'],
    ['id' => 3, 'name' => 'Charlie', 'position' => 'Manager']
];

// 使用 array_column 提取所有的員工ID和員工姓名
$ids = array_column($employees, 'id');  // 提取所有員工ID
$names = array_column($employees, 'name');  // 提取所有員工姓名

// 使用 array_combine 結合 ID 日本名稱,生成關聯數組
$employeeNames = array_combine($ids, $names);

// 輸出結果
print_r($employeeNames);
?>

輸出結果:

 Array
(
    [1] => Alice
    [2] => Bob
    [3] => Charlie
)

解釋:

  1. 我們首先通過array_column($employees, 'id')提取了所有員工的id列。

  2. 然後,使用array_column($employees, 'name')提取了所有員工的name列。

  3. 最後,我們使用array_combine($ids, $names)id作為鍵, name作為值,形成了一個新的關聯數組。

通過這種方式,我們可以快速地根據不同的需求對數據進行重組。

總結

array_combinearray_column函數結合使用,能夠幫助我們輕鬆地從二維數組中提取特定的列,並將其重新組合成一個關聯數組。這種方法非常適用於數據處理,特別是在處理來自數據庫查詢結果或其他多維數組時。掌握這兩個函數的使用,將使你在PHP 編程中更加得心應手。

其他鏈接

如果你想進一步了解PHP 的數組操作,可以參考PHP 官方文檔: https://www.php.net/manual/zh/