Поиск переменной в массиве () - PullRequest
0 голосов
/ 19 октября 2010

Если бы у меня был этот код:

$result = 1;

$square = array(

"00" => -1,
"0" => 0,
"1" => 1,

);

И хотел узнать, равен ли $ result ЛЮБОМУ из массива VALUES $ square (-1, 0 или 1).

Я предполагаю, что должна быть функция, которая сравнивает переменную со всеми значениями массива и соответственно возвращает ИСТИНА или ЛОЖЬ.

Если такой функции нет, я открыт для любых предложений и / или обходных путей, которые вы могли бы спрятать под рукавами:)

Заранее спасибо

Ответы [ 5 ]

3 голосов
/ 19 октября 2010

Вы ищете in_array():

$result = 1;
$square = array( "00" => -1, "0" => 0, "1" => 1, );

if (in_array($result, $square)) {
    echo "Found something!";
}
1 голос
/ 19 октября 2010

Если ваш массив будет большим (> 500 элементов), вы захотите сделать это:

$flip_square = array_flip($square);
return isset($flip_square["string_to_search_for"]);

Если вы этого не сделаете, это может быть смертельно медленно. Это во много раз быстрее, чем in_array().

1 голос
/ 19 октября 2010

in_array должно работать на вас.

if(in_array($result, $square)) {
   //$result is in there.
}
0 голосов
/ 19 октября 2010

В php есть функция, которая сделает это. Он известен как array_search();. Для кода выше вы должны использовать

if(false !== array_search($square, $result)){
echo "Found something";
}

Ссылку на документацию можно найти здесь . Посмотрите на дно для примеров кода.

0 голосов
/ 19 октября 2010

if(array_search($result,$square)===false) { echo "DNE"; }

Обратите внимание на ===!

РЕДАКТИРОВАТЬ: параметры переключаемой функции - извините

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...