Php 在关联数组中使用空字符串作为键

Php 在关联数组中使用空字符串作为键,php,associative-array,array-key,Php,Associative Array,Array Key,我需要根据一些值选择和分组一些项目,使用关联多维数组很容易: $Groups = array( "Value1" = array("Item1", "Item3"), "Value2" = array("Item2", "Item4") ); 但有些项目没有该值,因此我的数组类似于: $Groups = array( "Value1" = array("Item1", "Item3"), "Value2" = array("Item2", "Item4"

我需要根据一些值选择和分组一些项目,使用关联多维数组很容易:

$Groups = array(
    "Value1" = array("Item1", "Item3"),
    "Value2" = array("Item2", "Item4")
    );
但有些项目没有该值,因此我的数组类似于:

$Groups = array(
    "Value1" = array("Item1", "Item3"),
    "Value2" = array("Item2", "Item4")
    "" = array("Item5", "Item6")
    );
我已经对它进行了测试(也是在foreach循环中),似乎一切都很好,但是我对php非常陌生,我担心使用空键会给我带来意想不到的问题

使用带空键的关联数组是否有问题?
这种做法不好吗?

如果是这样的话,我怎样才能达到我的目标呢?

没有空钥匙这样的东西。密钥可以是空字符串,但您仍然可以始终在
$groups[“”]
处访问它


关联数组的有用之处在于关联,因此将空字符串作为数组键是否有意义取决于您如何将该键与值关联。

您可以将空字符串用作键,但请小心,因为
null
值将转换为空字符串:

<?php

$a = ['' => 1];

echo $a[''];
// prints 1

echo $a[null];
// also prints 1

从哪里获取阵列?你用它干什么?它的好坏取决于用例。
我怎样才能达到我的目标?
你的目标是什么?:)@Litty我指的是第二个数组的等价物。不管怎样,我已经得到了“一些项目”的答案,这意味着您可能有多个空字符串作为键,这当然会导致重击。也许您应该为这些生成唯一的ID。您还应该在定义数组时为键值对使用双箭头运算符
=>
。是的,它不是空的,而是空字符串!我会更新这个问题title@LightnessRacesinOrbit空字符串仍为空,但仍有可引用的方法。你不能做
$array=[=>“value”]
,但是
$array=[”“=>“value”]
很好。@Devon:是的,我误读了genespos的评论(主要是因为前一个例子毫无意义,甚至没有进入我的脑海!)
<?php

define('NO_VALUE_KEY', 'the_key_without_value');

$a = [NO_VALUE_KEY => 1];