溫馨提示×

溫馨提示×

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

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

PHP數(shù)組中如何去除空白或者重復(fù)的元素

發(fā)布時(shí)間:2021-08-27 08:02:24 來源:億速云 閱讀:593 作者:小新 欄目:編程語言

這篇文章主要介紹PHP數(shù)組中如何去除空白或者重復(fù)的元素,文中介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們一定要看完!

方法1、foreach循環(huán) + empty() + unset()

實(shí)現(xiàn)思想:

  • 利用foreach語句來遍歷數(shù)組$array,在每次循環(huán)中將鍵名賦給$key,鍵值賦給$value

foreach($array as $key => $value){  
}
  • 在循環(huán)中,利用empty()函數(shù)來判斷$value是否為空,如果為空則使用unset()刪掉該元素

下面我們給出完整實(shí)現(xiàn)代碼:

<?php 
header("content-type:text/html;charset=utf-8");
$array = array("php", 11, '', 12, "億速云", '',2021,"mysql"); 
var_dump($array);       
 
// 使用array_filter()函數(shù)從數(shù)組中移除空元素
$filtered_array = array_filter($array); 
echo "刪除空元素后的數(shù)組";
var_dump($filtered_array); 
?>

輸出結(jié)果:

PHP數(shù)組中如何去除空白或者重復(fù)的元素

說明:在PHP中empty()函數(shù)用于檢查一個(gè)變量是否被認(rèn)為是空的。

當(dāng)變量等于以下的值時(shí)empty()會(huì)認(rèn)為是空的:

  • ""(空字符串)

  • 0(作為整數(shù)的0)

  • 0.0(作為浮點(diǎn)數(shù)的0)

  • “0”(作為字符串的0)

  • NULL

  • FALSE

  • Array()(一個(gè)空數(shù)組)

  • $var (一個(gè)聲明了,但是沒有值得變量)

方法2、使用array_filter()函數(shù)進(jìn)行過濾

array_filter() 函數(shù)可以用回調(diào)函數(shù)來過濾數(shù)組中的元素。該函數(shù)會(huì)迭代數(shù)組中的每個(gè)值,將它們傳遞給用戶定義的函數(shù)或回調(diào)函數(shù)。如果省略回調(diào)函數(shù),則默認(rèn)過濾空值。(array_filter() 函數(shù)不會(huì)改變原數(shù)組)

<?php 
header("content-type:text/html;charset=utf-8");
$array = array("php", 11, '', 12, "億速云", '',2021,"mysql",""); 
var_dump($array);       
 
// 使用array_filter()函數(shù)從數(shù)組中移除空元素
$filtered_array = array_filter($array); 
echo "刪除空元素后的數(shù)組";
var_dump($filtered_array); 
?>

輸出結(jié)果:

PHP數(shù)組中如何去除空白或者重復(fù)的元素

可以看出:array_filter()在過濾數(shù)組元素時(shí),不會(huì)重置索引。刪除空元素后,還是按照原有的索引順序。

那么如果想要重置索引,從0開始重新排序,要怎么操作?我們可以使用array_values()函數(shù)。

var_dump(array_values($filtered_array));

PHP數(shù)組中如何去除空白或者重復(fù)的元素

是不是很簡單!

上面我們了解了去除空元素的方法,下面我們看看怎么去除重復(fù)數(shù)組元素

PHP數(shù)組刪除重復(fù)數(shù)組不用借助其他方法,PHP直接就內(nèi)置了一個(gè)函數(shù)來實(shí)現(xiàn)這個(gè)操作,大家知道是什么函數(shù)嗎?

好了,不買關(guān)子了,就是array_unique()函數(shù)。如果數(shù)組中有兩個(gè)或更多個(gè)值相同,則array_unique()函數(shù)只保留第一個(gè)值,其他的值被移除。

<?php 
header("content-type:text/html;charset=utf-8");
$array = array("php", 11, '', 11, "億速云",'',"green",2021,"mysql","","green"); 
var_dump($array);       
 
$result = array_unique($array);
echo "刪除重復(fù)元素后的數(shù)組";
//var_dump(array_values($filtered_array)); 
var_dump($result);
?>

輸出結(jié)果:

PHP數(shù)組中如何去除空白或者重復(fù)的元素

array_unique()函數(shù)也不會(huì)重置鍵名(索引),被保留的數(shù)組將保持第一個(gè)數(shù)組項(xiàng)的鍵名類型。因此在使用array_unique()函數(shù)去除重復(fù)元素后,可以使用array_values()函數(shù)來重置索引。

var_dump(array_values($result));

PHP數(shù)組中如何去除空白或者重復(fù)的元素

其實(shí)我們還可以利用數(shù)組中不存在重復(fù)鍵名的特性來去除重復(fù)數(shù)組元素。

實(shí)現(xiàn)思想:先將鍵名和鍵值互換來移除重復(fù)值;然后在重新將鍵名和鍵值調(diào)換回來即可關(guān)鍵代碼:

array_flip(array_flip($array))

以上是“PHP數(shù)組中如何去除空白或者重復(fù)的元素”這篇文章的所有內(nèi)容,感謝各位的閱讀!希望分享的內(nèi)容對(duì)大家有幫助,更多相關(guān)知識(shí),歡迎關(guān)注億速云行業(yè)資訊頻道!

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

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

php
AI