PHP陣列學習之怎麼去除空白或者重複的元素

dapan發表於2021-09-11
我們在之前的文章中瞭解了分割一維陣列,將一維陣列分割成包含指定個數元素二維陣列的方法,感興趣的可以點選連結進行查閱→《》。這次我們進行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, "PHP中文網", '',2021,"mysql"); 
var_dump($array);       
 
// 使用array_filter()函式從陣列中移除空元素
$filtered_array = array_filter($array); 
echo "刪除空元素後的陣列";
var_dump($filtered_array); 
?>

輸出結果:

1.png

說明:在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, "PHP中文網", '',2021,"mysql",""); 
var_dump($array);       
 
// 使用array_filter()函式從陣列中移除空元素
$filtered_array = array_filter($array); 
echo "刪除空元素後的陣列";
var_dump($filtered_array); 
?>

輸出結果:

2.png

可以看出:array_filter()在過濾陣列元素時,不會重置索引。刪除空元素後,還是按照原有的索引順序。

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

var_dump(array_values($filtered_array));

3.png

是不是很簡單!

上面我們瞭解了去除空元素的方法,下面我們看看怎麼去除重複陣列元素

PHP陣列刪除重複陣列不用藉助其他方法,PHP直接就內建了一個函式來實現這個操作,大家知道是什麼函式嗎?

好了,不買關子了,就是array_unique()函式。如果陣列中有兩個或更多個值相同,則array_unique()函式只保留第一個值,其他的值被移除。

<?php 
header("content-type:text/html;charset=utf-8");
$array = array("php", 11, '', 11, "PHP中文網",'',"green",2021,"mysql","","green"); 
var_dump($array);       
 
$result = array_unique($array);
echo "刪除重複元素後的陣列";
//var_dump(array_values($filtered_array)); 
var_dump($result);
?>

輸出結果:

4.png

array_unique()函式也不會重置鍵名(索引),被保留的陣列將保持第一個陣列項的鍵名型別。因此在使用array_unique()函式去除重複元素後,可以使用array_values()函式來重置索引。

var_dump(array_values($result));

5.png

其實我們還可以利用陣列中不存在重複鍵名的特性來去除重複陣列元素。

實現思想:先將鍵名和鍵值互換來移除重複值;然後在重新將鍵名和鍵值調換回來即可(推薦閱讀《》)。關鍵程式碼:

array_flip(array_flip($array))

好了就說到這裡了,有其他想知道的,可以點選這個哦。→ →

最後給大家推薦一個PHP陣列的免費影片教程:,快來學習吧!

以上就是PHP陣列學習之怎麼去除空白或者重複的元素的詳細內容,更多請關注php中文網其它相關文章!

來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/758/viewspace-2827366/,如需轉載,請註明出處,否則將追究法律責任。

相關文章