您好,登錄后才能下訂單哦!
這篇文章主要介紹PHP數組中如何去除空白或者重復的元素,文中介紹的非常詳細,具有一定的參考價值,感興趣的小伙伴們一定要看完!
方法1、foreach循環 + empty() + unset()
實現思想:
利用foreach語句來遍歷數組$array,在每次循環中將鍵名賦給$key,鍵值賦給$value
foreach($array as $key => $value){ }
在循環中,利用empty()函數來判斷$value是否為空,如果為空則使用unset()刪掉該元素
下面我們給出完整實現代碼:
<?php header("content-type:text/html;charset=utf-8"); $array = array("php", 11, '', 12, "億速云", '',2021,"mysql"); var_dump($array); // 使用array_filter()函數從數組中移除空元素 $filtered_array = array_filter($array); echo "刪除空元素后的數組"; var_dump($filtered_array); ?>
輸出結果:
說明:在PHP中empty()函數用于檢查一個變量是否被認為是空的。
當變量等于以下的值時empty()會認為是空的:
""(空字符串)
0(作為整數的0)
0.0(作為浮點數的0)
“0”(作為字符串的0)
NULL
FALSE
Array()(一個空數組)
$var (一個聲明了,但是沒有值得變量)
方法2、使用array_filter()函數進行過濾
array_filter() 函數可以用回調函數來過濾數組中的元素。該函數會迭代數組中的每個值,將它們傳遞給用戶定義的函數或回調函數。如果省略回調函數,則默認過濾空值。(array_filter() 函數不會改變原數組)
<?php header("content-type:text/html;charset=utf-8"); $array = array("php", 11, '', 12, "億速云", '',2021,"mysql",""); var_dump($array); // 使用array_filter()函數從數組中移除空元素 $filtered_array = array_filter($array); echo "刪除空元素后的數組"; var_dump($filtered_array); ?>
輸出結果:
可以看出:array_filter()在過濾數組元素時,不會重置索引。刪除空元素后,還是按照原有的索引順序。
那么如果想要重置索引,從0開始重新排序,要怎么操作?我們可以使用array_values()
函數。
var_dump(array_values($filtered_array));
是不是很簡單!
上面我們了解了去除空元素的方法,下面我們看看怎么去除重復數組元素。
PHP數組刪除重復數組不用借助其他方法,PHP直接就內置了一個函數來實現這個操作,大家知道是什么函數嗎?
好了,不買關子了,就是array_unique()
函數。如果數組中有兩個或更多個值相同,則array_unique()函數只保留第一個值,其他的值被移除。
<?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 "刪除重復元素后的數組"; //var_dump(array_values($filtered_array)); var_dump($result); ?>
輸出結果:
array_unique()函數也不會重置鍵名(索引),被保留的數組將保持第一個數組項的鍵名類型。因此在使用array_unique()函數去除重復元素后,可以使用array_values()函數來重置索引。
var_dump(array_values($result));
其實我們還可以利用數組中不存在重復鍵名的特性來去除重復數組元素。
實現思想:先將鍵名和鍵值互換來移除重復值;然后在重新將鍵名和鍵值調換回來即可關鍵代碼:
array_flip(array_flip($array))
以上是“PHP數組中如何去除空白或者重復的元素”這篇文章的所有內容,感謝各位的閱讀!希望分享的內容對大家有幫助,更多相關知識,歡迎關注億速云行業資訊頻道!
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。