数组: 一个键可以存储多个值

5

我曾尝试使用相同的键添加两个值,但失败了。它覆盖了旧值。难道不可能使用相同的键添加多个值,在按键检索时,我得到一个链接列表,可以迭代以获取所有不同的值吗?


所以它确实起作用了,因为这就是它应该的方式;就像cdhowie下面所说的那样,您可以创建(或可能找到)一个类,其功能与您描述的相同。 - Mchl
你的问题标题和问题内容非常不同... - BoltClock
3个回答

12

最简单的选择:无论在何处使用 $array[$key]=...,都将其替换为 $array[$key][]=...


1
你可以创建一个包装函数:
function add_to_array($array, $key, $value) {
    if(array_key_exists($key, $array)) {
        if(is_array($array[$key])) {
            $array[$key][] = $value;
        }
        else {
            $array[$key] = array($array[$key], $value);           
        }
    }
    else {
        $array[$key] = array($value);
    }
}

所以你只需要创建一个二维数组。你可以通过普通的数组访问$array[$key]来检索“链表”(另一个数组)。

这种方法是否方便取决于你自己。


1

除非您实际上将数组存储为值,否则不会。 PHP中的哈希表将键映射到一个值。该值可以是数组,但是您必须自己构建数组。您可以考虑创建一个类来为您完成此操作。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接