unset/array_unique/array_filter

從幾個小技巧說起

判斷一個數組是否有重複值:count($array) == count(array_unique($array))

判斷一個數組是否含有空值:count($array) == count(array_filter($array))
筆者目前知道的是:array_filter() 可以把'', null, false等去掉。

數組函數對鍵值的影響

上面談到的array_unique()、array_filter(),以及接下來要說的unset(),給筆者的印象是:php數組處理函數,大多不會對鍵名產生影響。

舉個例子:


$b輸出的結果是:

可以發現鍵值爲1的元素已被抹去,但是鍵值爲2或爲3的元素沒有改變。同理,unset()、array_filter()等函數也是這樣的。

所以,當運行完這些函數時,切忌使用foreach()循環等函數。畢竟少了一個元素。但是,運行count()等,還是很可以很方便的。

也可以這樣理解:初始數組是關聯數組和索引數組,但是unset()等函數折騰過後,這些數組就變成了索引數組。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章