首先我們來看看關於php如何運算元組中的空值的多種方法
implode(); 此函數可參考http://www.111cn.net/phper/29/2dc95be9381b4bb1753083c09fda1a36.htm
用implode()將數組輸出為字串,判斷輸出的字串是否為空白。初看上去似乎是個不錯的方法,可惜跟上一點一樣,對於二維以上數組就不行了。舉個例子:
代碼如下 |
複製代碼 |
$arr= array(array(),array(),array()); $str = implode(',',$arr); if(empty($str)) echo "空"; else echo "非空"; |
很明顯$arr是個含有三個空數組的二維數組,應該也算是空的,可是輸出的確是非空。判斷失敗。
三、count(); 可參考http://www.111cn.net/w3school/php/func_array_count.htm
代碼如下 |
複製代碼 |
$arr= array("","",""); echo count($arr); |
四、in_array('', $arr)); 函數用法可參考http://www.111cn.net/phper/24/c5b81a8af14b1c0928eea343f59b454a.htm
代碼如下 |
複製代碼 |
$arr= array("d","s",""); echo in_array('', $arr); |
這個只能說明數組中有空的元素,不能證明數組是空的。很明顯也不行。
五、empty(); 函數用法可參考http://www.111cn.net/so/php+empty()
這個cpyeh覺得跟前面幾種方法差不多
代碼如下 |
複製代碼 |
$arr= array("","",""); if(empty($arr)) echo "空"; else echo "非空"; |
結果還是非空
六、用strlen(),沒內容的話好象長度都為1
結合上面執行個體我們寫一個完整的刪除數組空值的元素
代碼如下 |
複製代碼 |
function array_remove_key($array, $keys) { $num = count($keys); $num_last = $num - 1; $this_array_0 = &$array; $last_key = $keys[$num_last]; for ($i = 0; $i < $num_last; $i++) { $this_key = $keys[$i]; $this_var_name = 'this_array_' . $i; $next_var_name = 'this_array_' . ($i + 1); if (!array_key_exists($this_key, $$this_var_name)) { break; } $$next_var_name = &${$this_var_name}[$this_key]; } unset(${$next_var_name}[$last_key]); return $array; } |