Php 数组:每个键存储多个值
我曾经尝试用同一个键添加两个值,但没有成功。它超越了旧值。难道不能用同一个键添加多个值吗?当按键检索时,我会得到一个链表,我可以迭代它来获取所有不同的值吗?除非您实际存储了一个数组作为值。PHP中的哈希表将一个键映射到一个值。该值可以是一个数组,但您必须自己构建该数组。您可以考虑创建一个类来为您这样做。 您可以创建包装函数:Php 数组:每个键存储多个值,php,arrays,Php,Arrays,我曾经尝试用同一个键添加两个值,但没有成功。它超越了旧值。难道不能用同一个键添加多个值吗?当按键检索时,我会得到一个链表,我可以迭代它来获取所有不同的值吗?除非您实际存储了一个数组作为值。PHP中的哈希表将一个键映射到一个值。该值可以是一个数组,但您必须自己构建该数组。您可以考虑创建一个类来为您这样做。 您可以创建包装函数: function add_to_array($array, $key, $value) { if(array_key_exists($key, $array)) {
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]
这种方法是否方便取决于你 最简单的选项:无论您在哪里使用
$array[$key]=…
都将其替换为$array[$key][]=…
,这样它就可以工作了,因为它应该是这样的;)正如下面的cdhowie所说,您可以创建(或可能找到)一个具有您描述的功能的类。您的问题标题和问题内容非常不同。。。