2017-06-05 83 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 - 完美的作品。 –

相關問題