为什么下面的代码不假定指定的"键"为空的"值"对?
举个例子:
$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 )
我想要一个包含未知数量项目的数组,所有这些项目可能有也可能没有键=>值对。我有哪些选择可以确保获得第二个结果?
本质上,我想将键列表从我的控制器传递给函数,并让函数将它们标识为键>值,即使该值为 null。某些键可能设置了值,而其他键可能没有。
可能是最好的解决方案在于foreach $key as $value {}
代码空间,或者我可以$key1
括在某种形式的括号中......我不确定!
谢谢
添加 NULL,如下所示。
$check=Array($key1=>21, $key2=>NULL, $key3=>23);
初始化数组:
$keys = array($key1, $key2, $key3);
$check = array_fill_keys($keys,NULL);
这取决于值的类型。
使用NULL
是一种非常常见的技术,但是,如果所有值都旨在属于同一类型,也许您想为它们使用"空"值,这不是NULL
。
例如,如果值是整数,则可能需要使用 0
或 -1
来指示未分配值。或者""
字符串。
如果要存储不同的类型,则可能希望将NULL
用作非类型化值。