2013-09-26 30 views
0

我有一個查詢字符串,看起來像這樣運行的功能.. dinnerPlate=white&lunchPlate=purple&cup=black每個查詢字符串值

我也有包含所有可允許的可用顏色的數組..

$availableColors = array("white","black","red","blue","green","pink"); 

我需要做的是用查詢字符串中的正確顏色填充imgsrc。例如..

<img src="<?php echo $color['dinnerPlate']; ?>.png" class="dinnerPlate" /> 
<img src="<?php echo $color['lunchPlate']; ?>.png" class="lunchPlate" /> 
<img src="<?php echo $color['cup']; ?>.png" class="cup" /> 

我需要創造一個php功能,可以檢查對availableColors陣列的查詢字符串值中的每一個,以確保其可用的顏色幫助。我不想讓某人在查詢字符串中手動鍵入「黃色」,因爲那樣我會得到一張破碎的圖像。因此,如果有人在查詢字符串中鍵入「黃色」,該函數將變爲黃色,如nocolor。該功能還需要提供輸出特定項目的顏色值的方法,如echo $color['lunchPlate']

感謝您的任何指導!

+0

http://php.net/in_array –

+0

是的,我知道那個功能。我的問題是將所有這些東西封裝到一個函數中,以便將它輸出到我的HTML中。 – Dustin

回答

0

首先,您需要分解查詢字符串&,然後按=。像這樣的東西應該做的伎倆:

$str = 'dinnerPlate=white&lunchPlate=purple&cup=black'; 

$availableColors = array('white','black','red','blue','green','pink'); 
$defaultColor = 'nocolor'; 

foreach (explode('&', $str) as $val) 
{ 
    list($item, $color) = explode('=', $val); 

    $color = in_array($color, $availableColors) ? $color : $defaultColor; 

    $data[$item] = $color; 
} 

然後你只需從$data陣列得到您的項目。

+0

這太棒了。工作幾乎完美無瑕。我將如何檢查其中一個項目是否沒有價值?現在如果沒有價值,它不會被設置爲'nocolor'。 – Dustin

+0

查詢字符串是什麼樣的? – Mark

+0

和我在我的問題中一樣。但是,在我的實際頁面中,我有大約16個項目來設置顏色。因此,如果我有一個不在查詢字符串中的項目,我想將它的顏色值設置爲'nocolor'。 – Dustin