您好,登錄后才能下訂單哦!
這篇文章主要介紹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中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é)果:
可以看出:array_filter()在過濾數(shù)組元素時(shí),不會(huì)重置索引。刪除空元素后,還是按照原有的索引順序。
那么如果想要重置索引,從0開始重新排序,要怎么操作?我們可以使用array_values()
函數(shù)。
var_dump(array_values($filtered_array));
是不是很簡單!
上面我們了解了去除空元素的方法,下面我們看看怎么去除重復(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é)果:
array_unique()函數(shù)也不會(huì)重置鍵名(索引),被保留的數(shù)組將保持第一個(gè)數(shù)組項(xiàng)的鍵名類型。因此在使用array_unique()函數(shù)去除重復(fù)元素后,可以使用array_values()函數(shù)來重置索引。
var_dump(array_values($result));
其實(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è)資訊頻道!
免責(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)容。