为什么下面的代码不会假设一个空的'值'对于指定的'键'?
采用以下示例:
$key1 = "An element";
$key2 = "Another, without a pair";
$key3 = "A third, with a pair";
$check=Array($key1=>21, $key2, $key3=>23);
如果使用print_r输出,则返回以下内容:
Array ( [An element] => 21 [0] => Another, without a pair [A third, with a pair] => 23 )
而不是:
Array ( [An element] => 21 [Another, without a pair] => null [A third, with a pair] => 23 )
我希望有一个包含未知数量项目的数组,所有这些项目可能有也可能没有key =>值对。我有什么选择可以确保获得第二个结果?
基本上,我想将一个键列表从我的控制器传递给一个函数,并且函数将它们标识为key->值,即使该值为null。某些键可能设置了值,其他键可能没有。
可能最好的解决方案在于foreach $key as $value {}
代码空间,或者我可以用某种形式的括号包裹$key1
......我不确定!
由于
答案 0 :(得分:0)
如此处所示添加NULL。
$check=Array($key1=>21, $key2=>NULL, $key3=>23);
要初始化数组:
$keys = array($key1, $key2, $key3);
$check = array_fill_keys($keys,NULL);
答案 1 :(得分:0)
取决于值的类型。
使用NULL
是一种非常常见的技术,但是,如果所有值都属于同一类型,那么您可能希望为它们使用“空”值,而不是{{1 }}
示例,如果值是整数,您可能希望使用NULL
或0
来指示未分配值。或者-1
表示字符串。
如果您要存储不同类型,则可能希望将""
用作非类型值。