将值添加到关联数组,其中某些键=>价值对不完整

时间:2015-01-20 00:57:53

标签: php arrays

为什么下面的代码不会假设一个空的'值'对于指定的'键'?

采用以下示例:

$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 ......我不确定!

由于

2 个答案:

答案 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 }}

示例,如果值是整数,您可能希望使用NULL0来指示未分配值。或者-1表示字符串。

如果您要存储不同类型,则可能希望将""用作非类型值。