2017-06-05 39 views
-6

我想返回给定键的数组中的所有值。例如,如果我选择的密钥是“a”,我希望返回“redpinkmaroon”。目前,我只是得到最终元素“褐红色”。返回给定键的PHP数组中的所有值

$newarray = array("a"=>"red","b"=>"green","c"=>"blue","a"=>"pink","a"=>"maroon"); 

foreach($newarray as $key => $value) { 
    if ($key === "a") { echo $value; } 
} 

任何想法非常感谢。

+0

这是因为只有1'了'键。密钥是唯一的,所以下面的密码会覆盖前一个。 'print_r($ newarray);' – AbraCadaver

+1

请参阅示例2以覆盖密钥。 http://php.net/manual/en/language.types.array.php – Schleis

+0

可能想重新访问其他问题并接受答案,否则人们会停止帮助你。 – AbraCadaver

回答

0

你可以尝试制作一个二维数组,如

$newarray = [ 
    "a" => ['red','pink','maroon'], 
    "b" => ['green'], 
    "c" => ['blue'] 
]; 

然后你就可以访问这些值是这样的:

$newarray['a'] 

这将返回一个包含红色粉红色的数组和栗色

+0

谢谢杰克。完美的作品 –

1

这是因为只有一个a键。密钥是唯一的,所以下面的密码会覆盖前一个。 From PHP: Arrays

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

试试print_r($newarray);看。

您可以在关键a定义与子阵列中的多维数组:

$newarray = array("a"=>array("red","pink","maroon"),"b"=>"green","c"=>"blue"); 

然后,只需循环的a键:

foreach($newarray['a'] as $value) { 
    echo $value; 
} 
0

试试这个,

$newarray = array("a"=>array("red","pink","maroon"),"b"=>"green","c"=>"blue"); 

    foreach($newarray as $key => $value) { 
     if ($key === "a") { 
      foreach ($value as $color) { 
       echo $color; 
      } 
     } 
    } 
+0

感谢Vikash - 完美的作品。 –

相关问题