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


Run a function on each query string value

我有一个看起来像这样的查询字符串。 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']

感谢您的任何指导!!

首先你需要按&分解查询字符串,然后按=分解。像这样的事情应该可以解决问题:

$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数组中获取项目即可。