如何在php中使用数组中的相同键创建多个值

时间:2016-08-29 11:08:29

标签: php arrays

我有一个包含多个密钥的数组。

数组1

$age = array("Peter"=>"35", "Ben"=>"37", "Joe"=>"43");

输出

Array ( [Peter] => 35 [Ben] => 37 [Joe] => 43 )

预期输出

$age = array("value"=>"35", "value"=>"37", "value"=>"43");
Array ( [value] => 35 [value] => 37 [value] => 43 )

5 个答案:

答案 0 :(得分:0)

是的,数组键应该是唯一的。所以,无论你问什么,它都是不可能的。你能告诉我们什么要求吗?因此,人们可以建议任何替代解决方案。

答案 1 :(得分:0)

使用本机php数组是不可能的。你需要的是一个multimap,你可以在github上找到它的几个实现。 例如:link

编辑:上面的链接是一个界面。您还需要包含link2

答案 2 :(得分:0)

你不能

实际上,数组键必须是唯一的。否则,当您尝试访问值时,程序应该输出什么?

但......

如果需要存储一个键的值列表,可以使用数组数组。

$array = array("value" => array());
array_push($array["value"], 35, 40, 53);
print_r($array)

输出将是:

Array
(
    [value] => Array
        (
            [0] => 35
            [1] => 40
            [2] => 53
        )

) 

答案 3 :(得分:0)

唯一的方法是将此数组转换为2D数组:

$age = array(
    array("value" => "35"),
    array("value" => "37"),
    array("value" => "43")
);

-- Output --
Array
(
    [0] => Array
        (
            [value] => 35
        )

    [1] => Array
        (
            [value] => 37
        )

    [2] => Array
        (
            [value] => 43
        )

)

-- Usage -- 
$age[0]['value'];
$age[1]['value'];
$age[2]['value'];

但这完全取决于$age数组是否在我们的控制范围内并且可以更改。

答案 4 :(得分:-1)

你不能

数组键必须是唯一的。

http://php.net/manual/en/language.types.array.php

  

如果数组声明中的多个元素使用相同的键,则只会使用最后一个元素,因为所有其他元素都会被覆盖。