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

问题描述 投票:2回答:2

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

$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很新,我担心使用空键可能会给我带来意想不到的问题。

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

php associative-array array-key
2个回答
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];

5
投票

没有空键这样的东西。键可以是空字符串,但您仍然可以在$groups[""]访问它。

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

© www.soinside.com 2019 - 2024. All rights reserved.