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

时间:2018-03-01 21:27:08

标签: 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")
    "" = array("Item5", "Item6")
    );

我已经测试了它(也是在一个foreach循环中)并且似乎一切正常但是我对php 很新,我担心使用空键可能会让我意想不到的问题。

使用带空键的关联数组有什么问题吗? 这是一种不好的做法吗? 如果是这样,我怎么能达到目标?

2 个答案:

答案 0 :(得分:5)

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

访问它

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

答案 1 :(得分:2)

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

<?php

$a = ['' => 1];

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

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

我认为,最好声明一些“无值”常量(实际上有一个值)并将其用作数组键:

<?php

define('NO_VALUE_KEY', 'the_key_without_value');

$a = [NO_VALUE_KEY => 1];