溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊(cè)×
其他方式登錄
點(diǎn)擊 登錄注冊(cè) 即表示同意《億速云用戶服務(wù)條款》

如何去除php重復(fù)數(shù)據(jù)

發(fā)布時(shí)間:2020-08-06 09:43:21 來(lái)源:億速云 閱讀:119 作者:Leah 欄目:編程語(yǔ)言

本篇文章為大家展示了如何去除php重復(fù)數(shù)據(jù),代碼簡(jiǎn)明扼要并且容易理解,絕對(duì)能使你眼前一亮,通過(guò)這篇文章的詳細(xì)介紹希望你能有所收獲。

php去除重復(fù)數(shù)據(jù)的方法:1.利用“array_unique”函數(shù)直接將一個(gè)數(shù)組中的重復(fù)的值去除;2、利用“array_flip”函數(shù)和“array_keys”函數(shù)一起實(shí)現(xiàn)去除重復(fù)數(shù)據(jù)。

兩種PHP中去除數(shù)組中重復(fù)數(shù)據(jù)的方法

1.直接利用array_unique函數(shù)

利用array_unique函數(shù)可以直接將一個(gè)數(shù)組中的重復(fù)的值去除,只保留重復(fù)值中的第一次出現(xiàn)的值和其對(duì)應(yīng)的鍵值

具體的說(shuō)明可以查看PHP手冊(cè)

例1:

$input = array("a" => "green", "red", "b" => "green", "blue", "red");
$result = array_unique($input);
print_r($result);
此時(shí)輸出:
Array
(
    [a] => green
    [0] => red
    [1] => blue
)

注意:在array_unique函數(shù)中,若出現(xiàn) int(3) 和 string(1) '3' 時(shí),函數(shù)會(huì)將這兩個(gè)值認(rèn)成同一個(gè)值,也只會(huì)保留先出現(xiàn)那個(gè)值

例2:

$input = array(4, "4", "3", 4, 3, "3");
$result = array_unique($input);
var_dump($result);

此時(shí)會(huì)輸出:

array(2) {
  [0] => int(4)
  [2] => string(1) "3"
}

2.利用array_flip函數(shù)和array_keys函數(shù)一起作用

在利用array_unique函數(shù)是非常的方便,但是有一點(diǎn),array_unique函數(shù)不會(huì)改變保留下來(lái)的值得原先的鍵值,這對(duì)于在某些情況下對(duì)于新數(shù)組的操作帶來(lái)了困難,此時(shí)就可以利用array_flip函數(shù)和array_keys函數(shù)

array_flip函數(shù)

將指定數(shù)組的值和鍵值對(duì)調(diào),將鍵名變成了值,而原先數(shù)組中的值成了鍵名,并且如果同一個(gè)值出現(xiàn)了多次,則最后一個(gè)鍵名將作為它的值,所有其它的都丟失了。

例如:

$trans = array("a" => 1, "b" => 1, "c" => 2);
$trans = array_flip($trans);
print_r($trans);

此時(shí)輸出:

Array
(
    [1] => b
    [2] => c
)

array_keys函數(shù)

array_keys函數(shù),可以返回?cái)?shù)組中部分的或所有的鍵名,這個(gè)比較好理解,如果指定了serch_value則是返回指定查詢值的鍵值

例如:

$array = array(0 => 100, "color" => "red");
print_r(array_keys($array));
$array = array("blue", "red", "green", "blue", "blue");
print_r(array_keys($array, "blue"));
$array = array("color" => array("blue", "red", "green"),
               "size"  => array("small", "medium", "large"));
print_r(array_keys($array));

此時(shí)會(huì)輸出:

Array
(
    [0] => 0
    [1] => color
)
Array
(
    [0] => 0
    [1] => 3
    [2] => 4
)
Array
(
    [0] => color
    [1] => size
)

介紹完兩個(gè)函數(shù)的使用后,在遇到一個(gè)數(shù)據(jù)重復(fù)很多的數(shù)組時(shí),想剔除中間重復(fù)的數(shù)據(jù)而又想鍵值從 ‘0’ 開(kāi)始計(jì)數(shù)時(shí),可以先對(duì)函數(shù)使用array_flip函數(shù),然后在對(duì)新的數(shù)組使用array_keys函數(shù),即可實(shí)現(xiàn)

補(bǔ)充:在編輯介紹array_keys函數(shù)的時(shí)候突然想到應(yīng)該有個(gè)函數(shù)可以取出所有的數(shù)組的value的,查了一下果然有array_value函數(shù),這個(gè)函數(shù)可以返回一個(gè)數(shù)組的所有的值并記錄進(jìn)新的數(shù)組,這樣也可以實(shí)現(xiàn)鍵值從 ‘0’ 開(kāi)始計(jì)數(shù),所以想實(shí)現(xiàn)本篇文章的目的也可以先使用array_unique函數(shù),接著對(duì)其使用array_value函數(shù)。

上述內(nèi)容就是如何去除php重復(fù)數(shù)據(jù),你們學(xué)到知識(shí)或技能了嗎?如果還想學(xué)到更多技能或者豐富自己的知識(shí)儲(chǔ)備,歡迎關(guān)注億速云行業(yè)資訊頻道。

向AI問(wèn)一下細(xì)節(jié)

免責(zé)聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點(diǎn)不代表本網(wǎng)站立場(chǎng),如果涉及侵權(quán)請(qǐng)聯(lián)系站長(zhǎng)郵箱:is@yisu.com進(jìn)行舉報(bào),并提供相關(guān)證據(jù),一經(jīng)查實(shí),將立刻刪除涉嫌侵權(quán)內(nèi)容。

AI