Использование str_replace для проверки существования в массиве - PullRequest
2 голосов
/ 05 октября 2011

У меня есть следующая функция

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

Что я пытаюсь сделать, если вход не находится в массиве совпадений, вернуть 0.

Так как это используется толькос другой стороны, производительность не самая большая проблема, но так как я все еще изучаю PHP, я хотел бы понять, как это сделать.

Любая помощь действительно ценится!Заранее спасибо!

Ответы [ 3 ]

5 голосов
/ 05 октября 2011

Я предлагаю использовать встроенную в PHP функцию in_array() вместо написания своей собственной.

0 голосов
/ 06 октября 2011

Я использовал следующий код:

function approved($input) {
$match = array('red','green','blue');
if(in_array(strtolower($input), $match)) {
   return 1;
} else {
    return 0;
}
}
0 голосов
/ 05 октября 2011

Как насчет:

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

Еще одна вещь, которую я мог бы добавить, это то, что вам следует избегать использования функции типа str_replace (которая, на первый взгляд, будет означать замену строк) для чего-то, что проверяет существованиетак как это может сбить с толку других программистов (или вас самих) при чтении кода.

...