从几个小技巧说起
判断一个数组是否有重复值: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()等函数折腾过后,这些数组就变成了索引数组。