Лучший способ проверить значение массива с помощью for - PullRequest
0 голосов
/ 04 февраля 2010

Я хотел бы проверить, есть ли значение в массиве, как это:

function check_value_new ($list, $message) {
    foreach ($list as $current) {
        if ($current == $message) return true;
    }
    return false;
}

function check_value_old ($list, $message) {
    for ($i = 0; $i < count ($status_list); $i ++) {
        if ($status_list[$i] == $$message) return true;
    }
    return false;
}

$arr = array ("hello", "good bye", "ciao", "buenas dias", "bon jour");
check_value_old ($arr, "buenas dias"); // works but it isn't the best
check_value_new ($arr, "buenas dias"); // argument error, where I'm wrong?

Я читал, что метод check_value_new - лучший способ работы с массивами, но я не привык работать с ним, как мне это исправить?

1 Ответ

3 голосов
/ 04 февраля 2010

PHP предлагает функцию с именем in_array, которая проверяет, существует ли значение в данном массиве.

Вы можете изменить функцию check_value_new, чтобы включить это:

function check_value_new ($list, $message) {
   foreach ($list as $current) {
     if (in_array($message, $current)) {
            return true;
  }
   return false;
}

Если вы хотите, вы также можете заставить функцию работать без цикла foreach, например,

function check_value_new ($list, $message) {
  // returns true if found, else returns false.
     return in_array($message, $list); 
 }
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...