從幾個小技巧說起
判斷一個數組是否有重複值: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()等函數折騰過後,這些數組就變成了索引數組。