在每个查询字符串值上运行一个函数

时间:2013-09-26 16:41:08

标签: php arrays query-string

我有一个看起来像这样的查询字符串.. dinnerPlate=white&lunchPlate=purple&cup=black

我还有一个数组,其中包含可以允许的所有可用颜色。

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

我需要做的是使用查询字符串中的正确颜色填充img的{​​{1}}。例如..

src

我需要帮助的是创建一个<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

感谢任何指导!!

1 个答案:

答案 0 :(得分: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数组中获取商品。