php 提供了多種內(nèi)置函數(shù)進(jìn)行數(shù)組去重,包括:array_unique():保留唯一元素并返回新數(shù)組。array_intersect_key():交叉比對(duì)鍵,僅保留第一個(gè)數(shù)組中存在的鍵對(duì)應(yīng)的值。array_unique() + array_values():先去重,再重新索引,僅保留唯一元素。
PHP 數(shù)組去重內(nèi)置函數(shù)指南
在 PHP 中,對(duì)數(shù)組進(jìn)行去重是一個(gè)常見(jiàn)任務(wù)。PHP 提供了多種內(nèi)置函數(shù),可幫助您輕松有效地完成這項(xiàng)任務(wù)。
1. array_unique() 函數(shù)
array_unique()
函數(shù)通過(guò)保留數(shù)組中的唯一元素來(lái)對(duì)數(shù)組進(jìn)行去重。它返回包含去重后元素的新數(shù)組。
<?php $array = ['foo', 'bar', 'baz', 'foo', 'bar']; $uniqueArray = array_unique($array);
登錄后復(fù)制
輸出:
Array ( [0] => foo [1] => bar [2] => baz )
登錄后復(fù)制登錄后復(fù)制
2. array_intersect_key() 函數(shù)
array_intersect_key()
函數(shù)將多個(gè)數(shù)組的鍵交叉對(duì)比,僅保留第一個(gè)數(shù)組中存在的鍵對(duì)應(yīng)的值。這可以有效地對(duì)數(shù)組進(jìn)行去重。
<?php $array1 = ['foo' => 1, 'bar' => 2, 'baz' => 3]; $array2 = ['foo' => 4, 'baz' => 5]; $uniqueArray = array_intersect_key($array1, $array2);
登錄后復(fù)制
輸出:
Array ( [foo] => 1 [baz] => 3 )
登錄后復(fù)制
3. array_unique() + array_values() 函數(shù)
array_unique()
函數(shù)和 array_values()
函數(shù)也可以結(jié)合使用來(lái)對(duì)數(shù)組進(jìn)行去重。array_unique()
函數(shù)首先刪除重復(fù)的元素,然后 array_values()
函數(shù)重新對(duì)數(shù)組進(jìn)行索引,僅保留唯一元素。
<?php $array = ['foo', 'bar', 'baz', 'foo', 'bar']; $uniqueArray = array_values(array_unique($array));
登錄后復(fù)制
輸出:
Array ( [0] => foo [1] => bar [2] => baz )
登錄后復(fù)制登錄后復(fù)制
實(shí)戰(zhàn)案例
以下是一個(gè)實(shí)用案例,演示如何在 Web 應(yīng)用中使用 array_unique()
函數(shù)對(duì)用戶輸入進(jìn)行去重:
<?php // 獲取用戶輸入 $userInput = $_POST['user_input']; // 將用戶輸入轉(zhuǎn)換為數(shù)組 $array = explode(",", $userInput); // 對(duì)數(shù)組進(jìn)行去重 $uniqueArray = array_unique($array); // 保存去重后的數(shù)組 // ...
登錄后復(fù)制
使用這些內(nèi)置函數(shù),您可以輕松有效地對(duì) PHP 數(shù)組進(jìn)行去重,從而簡(jiǎn)化您的代碼并提高性能。