Если [Получить переменную] равно [Массив] - PullRequest
0 голосов
/ 27 ноября 2009

Я пытаюсь найти более простой и простой способ кодирования логики.

То есть, если одна переменная равна любым значениям ключа в массиве.

Например:

$someArray = array("a","b","c");
If($_GET["foobar"] == $someArray) {
     return true;
} else {
     return false;
}

Если бы $ _GET ["foobar"] имел значение A, B или C, регистр вернул бы true. Если бы это были какие-то другие значения, он вернул бы false.

Спасибо за помощь.

Ответы [ 3 ]

10 голосов
/ 27 ноября 2009
return in_array($_GET["foobar"], $someArray, true);

EDIT: добавлен необязательный параметр true.

3 голосов
/ 27 ноября 2009

Вместо целочисленных массивов вы можете использовать ассоциативные массивы:

$someArray = array('a' => 1, 'b' => 1, 'c' => 1);
if (isset($someArray[$_GET['foobar']])) {
    ...
}

Если вам не нравится вводить все значения массива или значения $ someArray должны оставаться без изменений, вы можете использовать array_flip:

$someArray = array('a', 'b', 'c');
...
$otherArray = array_flip($someArray);
if (isset($otherArray[$_GET['foobar']])) {
    ...
}

Вы даже можете хранить полезную информацию в значениях ассоциативного массива.

2 голосов
/ 27 ноября 2009

Вы можете использовать функцию in_array () . Я уверен, что это именно то, что вы ищете. Вот функция из предоставленного вами примера кода.

$someArray = array("a","b","c");
if(in_array($_GET["foobar"],$someArray)) {
     return true;
} else {
     return false;
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...