首頁 > 後端開發 > PHP問題 > php如何去除重複數據

php如何去除重複數據

藏色散人
發布: 2023-03-03 19:56:01
原創
6414 人瀏覽過

php移除重複資料的方法:1、利用「array_unique」函數直接移除一個陣列中的重複的值;2、利用「array_flip」函式和「array_keys」函式一起移除重複資料。

php如何去除重複數據

推薦:《PHP影片教學

兩種PHP中移除陣列中重複資料的方法

1.直接利用array_unique函數

利用array_unique函數可以直接將一個數組中的重複的值去除,只保留重複值中的第一次出現的值和其對應的鍵值

具體的說明可以查看PHP手冊

例1:

$input = array("a" => "green", "red", "b" => "green", "blue", "red");
$result = array_unique($input);
print_r($result);
此时输出:
Array
(
    [a] => green
    [0] => red
    [1] => blue
)
登入後複製

注意:在array_unique函數中,若出現int(3) 和string( 1) '3' 時,函數會將這兩個值認成同一個值,也只會保留先出現那個值

例2:

$input = array(4, "4", "3", 4, 3, "3");
$result = array_unique($input);
var_dump($result);
登入後複製

此時會輸出:

array(2) {
  [0] => int(4)
  [2] => string(1) "3"
}
登入後複製

2.利用array_flip函數和array_keys函數一起作用

在利用array_unique函數是非常的方便,但是有一點,array_unique函數不會改變保留下來的值得原先的鍵值,這對於在某些情況下對於新數組的操作帶來了困難,此時就可以利用array_flip函數和array_keys函數

array_flip函數

將指定數組的值和鍵值對調,將鍵名變成了值,而原先數組中的值成了鍵名,並且如果同一個值出現了多次,則最後一個鍵名將作為它的值,所有其它的都丟失了。

例如:

$trans = array("a" => 1, "b" => 1, "c" => 2);
$trans = array_flip($trans);
print_r($trans);
登入後複製

此時輸出:

Array
(
    [1] => b
    [2] => c
)
登入後複製

array_keys函數

array_keys函數,可以傳回數組中部分的或所有的鍵名,這個比較好理解,如果指定了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));
登入後複製

此時會輸出:

Array
(
    [0] => 0
    [1] => color
)
Array
(
    [0] => 0
    [1] => 3
    [2] => 4
)
Array
(
    [0] => color
    [1] => size
)
登入後複製

介紹完兩個函數的使用後,在遇到一個資料重複很多的陣列時,想剔除中間重複的資料而又想鍵值從'0' 開始計數時,可以先對函數使用array_flip函數,然後在對新的陣列使用array_keys函數,即可實現

補充:在編輯介紹array_keys函數的時候突然想到應該有個函數可以取出所有的數組的value的,查了一下果然有array_value函數,這個函數可以返回一個數組的所有的值並記錄進新的數組,這樣也可以實現鍵值從'0' 開始計數,所以想實現這篇文章的目的也可以先使用array_unique函數,接著對其使用array_value函數。

以上是php如何去除重複數據的詳細內容。更多資訊請關注PHP中文網其他相關文章!

相關標籤:
php
來源:php.cn
本網站聲明
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn
熱門教學
更多>
最新下載
更多>
網站特效
網站源碼
網站素材
前端模板