在PHP 中,我們經常需要處理數組,尤其是當數組中包含多個多維數組時,提取某一列的值並進行去重的需求也時常出現。今天,我們就來探討一下如何結合array_column和array_unique函數去重數組中某列的值。
首先,我們可以通過array_column函數從一個多維數組中提取某一列的值。 array_column的作用是返回多維數組中某個指定列的值,常用來提取數據列表中的某一項信息。
例如,假設我們有一個包含多條記錄的數組,每條記錄有id 、 name和email等字段,我們想要從中提取所有的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函數對提取出來的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地址,只保留了唯一的郵箱地址。
將這兩個函數結合起來,我們就可以實現從多維數組中提取某一列並去重的操作。以下是一個完整的示例,演示如何提取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);
?>
最終輸出結果為: