當前位置: 首頁> 最新文章列表> 結合array_column 和array_unique 去重某列的值

結合array_column 和array_unique 去重某列的值

M66 2025-04-28

在PHP 中,我們經常需要處理數組,尤其是當數組中包含多個多維數組時,提取某一列的值並進行去重的需求也時常出現。今天,我們就來探討一下如何結合array_columnarray_unique函數去重數組中某列的值。

使用array_column提取數組中的某一列

首先,我們可以通過array_column函數從一個多維數組中提取某一列的值。 array_column的作用是返回多維數組中某個指定列的值,常用來提取數據列表中的某一項信息。

例如,假設我們有一個包含多條記錄的數組,每條記錄有idnameemail等字段,我們想要從中提取所有的email地址。

 <?php
$data = [
    ['id' => 1, 'name' => 'Alice', 'email' => 'alice@m66.net'],
    ['id' => 2, 'name' => 'Bob', 'email' => 'bob@m66.net'],
    ['id' => 3, 'name' => 'Charlie', 'email' => 'alice@m66.net'],
];

$emails = array_column($data, 'email'); // 提取所有的 email 地址
print_r($emails);
?>

運行上述代碼後,輸出結果是:

 Array
(
    [0] => alice@m66.net
    [1] => bob@m66.net
    [2] => alice@m66.net
)

使用array_unique去重數組中的值

接下來,我們使用array_unique函數對提取出來的email地址進行去重。 array_unique函數會刪除數組中的重複值,只保留唯一的值。

 <?php
$uniqueEmails = array_unique($emails); // 去重
print_r($uniqueEmails);
?>

運行上述代碼後,輸出結果是:

 Array
(
    [0] => alice@m66.net
    [1] => bob@m66.net
)

可以看到, array_unique成功去除了重複的alice@m66.net地址,只保留了唯一的郵箱地址。

綜合使用array_columnarray_unique

將這兩個函數結合起來,我們就可以實現從多維數組中提取某一列並去重的操作。以下是一個完整的示例,演示如何提取email列並去重。

 <?php
$data = [
    ['id' => 1, 'name' => 'Alice', 'email' => 'alice@m66.net'],
    ['id' => 2, 'name' => 'Bob', 'email' => 'bob@m66.net'],
    ['id' => 3, 'name' => 'Charlie', 'email' => 'alice@m66.net'],
];

$emails = array_column($data, 'email'); // 提取所有的 email 地址
$uniqueEmails = array_unique($emails); // 去重
print_r($uniqueEmails);
?>

最終輸出結果為: