2013-09-27 56 views
-2

我有這兩個數組。一個數組包含顏色的名稱。另一個保存它們的十六進制值。使用數組中的值從另一個數組中獲取值

$availableColors = array("white","black"); 
$hexColors = array("white"=>"ffffff","black"=>"000000"); 

我希望這將輸出#ffffff ....

$hexColors[$availableColors'white']; 

但是,這似乎並沒有爲我工作。

+0

'$ hexColors [$ availableColors [0]]'會有意義。 '$ availableColors'white''沒有。 – deceze

+1

簡而言之:'echo'#'。$ hexColors ['white'];'會輸出'#ffffff' – Christoph

+0

是否需要爲此使用2個獨立數組? – tommyd456

回答

0

您正在通過文本鍵訪問非關聯數組;你應該這樣做

echo $hexColors[$availableColors[0]]; 
+0

它對0索引。 –

+0

@MShahzadKhan是的,這是一個錯字,謝謝 – Alex

1

首先,你的語法不正確。接下來,你$availableColors陣列被定義爲:

[ 
    [0] => "white", 
    [1] => "black" 
] 

因此,如果你想獲得白色出來的,你需要引用0的元素:

$hexColors[$availableColors[0]] 
1

你不需要$availableColors,你可以做直接

echo "#".$hexColors['white']; 

將輸出#ffffff

如果您需要$availableColors檢查顏色是否允許/可用。

$color = 'white'; 
if(in_array($color, $availableColors) { 
    echo "#".$hexColors[$color]; 
} else { 
    die('Color not allowed'); 
} 
+0

他可以做'if(isset($ hexColors [$ color]))''。 – Christoph

+0

這是正確的,他可以。 –

相關問題