之前:
$my_array = Array ( [TRUE] => 1 [FALSE] => 2 [] => 0 )
如果键[]为空,我想删除数组。
我的概念:
if ($my_array.key is null) {
unset($my_array.key)
}
希望阵列成为:
$my_array = Array ( [TRUE] => 1 [FALSE] => 2)
您不需要取消设置,只需像这样array_filter()
即可:
<?php
$my_array = [TRUE => 1, FALSE => 2, NULL => 0];
print_r($my_array);
$my_array = array_filter($my_array, "strlen", ARRAY_FILTER_USE_KEY);
print_r($my_array);
?>
输出:
Array ( [1] => 1 [0] => 2 [] => 0 )
Array ( [1] => 1 [0] => 2 )
旁注:
键实际上不能为NULL。您也可以在手册中看到这一点:
键可以是整数,也可以是字符串。该值可以是任何类型。
意味着您的"NULL"键被强制转换为一个空字符串。你可以用var_dump()
:看到这一点
array(3) { [1]=> int(1) [0]=> int(2) [""]=> int(5) }
//^^^^ See the key is just an empty string