使用str_replace测试数组中是否存在

时间:2011-10-05 04:37:07

标签: php if-statement str-replace

我有以下功能

function blah($string) {
    $match = array('red', 'green', 'blue');
    $replace = array('1', '1,', '0');
    return str_replace($match, $replace $string);
}

我要做的是,如果输入不在匹配数组中,则返回0.

由于这只在后端使用一次/天,性能不是最大的问题,但由于我还在学习PHP,我想了解这样做的正确方法。

非常感谢任何帮助!提前谢谢!

3 个答案:

答案 0 :(得分:5)

我建议使用PHP的内置in_array()函数,而不是编写自己的函数。

答案 1 :(得分:0)

怎么样:

function blah($string) {
    $matches = array('red', 'green');        
    return in_array($string, $matches);
}

我可能会添加的另一件事是你应该避免使用像str_replace这样的函数(一眼就会意味着替换字符串)来测试存在的东西,因为它可能会混淆其他程序员(或你自己)在阅读代码时。

答案 2 :(得分:0)

我最终使用了以下代码:

function approved($input) {
$match = array('red','green','blue');
if(in_array(strtolower($input), $match)) {
   return 1;
} else {
    return 0;
}
}