繁体   English   中英

array:每个键存储多个值

[英]array: store multiple values per key

我曾经尝试使用相同的密钥添加两个值,但它不起作用。 它超越了旧的价值。 是不是可以使用相同的键添加多个值,并且当通过键检索时,我得到一个链接列表,我可以迭代以获得所有不同的值?

最简单的选择:无论你在哪里使用$array[$key]=...$array[$key]=...替换它$array[$key][]=...

除非您实际存储数组作为值。 PHP中的Hashtables将键映射到一个值。 该值可以是一个数组,但您必须自己构建数组。 您可以考虑创建一个类来为您执行此操作。

您可以创建包装函数:

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]检索“链表”(另一个数组)。

这种方法是否方便取决于您。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM