2013-08-05 2 views
-2

У меня есть эта функция:in_array всегда возвращает ложь

function remove_addresse($input) { 
    if (!is_array ($input)) { 
     $input = array ($input); 
    } 

    foreach ($this -> message_meta['to_address'] as $key => $address) { 
     echo $address; 
     print_r($input); 
     if (in_array ($address, $input)) { 
      unset ($this -> message_meta['to_address'][$key]); 
     } 
    } 
} 

По какой-то причине in_array всегда возвращается ложь.

типичный $ Адрес: [email protected]

типичный $ вход: Array ([0] => mult1.client.com [1] => mult3.client.com)

Почему это происходит?

+5

Почему вы ожидаете, что они будут соответствовать? ('@' - это не тот же символ, что и..) –

ответ

0

разве что. это опечатка на типичном входе, ну тогда игла не находится в стоге сена.

[email protected]! = Mult3.client.com

+2

Я идиот. Это было очевидно –

+0

Np. Дайте нам знать, исправлена ​​ли проблема, или это просто опечатка в вопросе? –

+0

мои тестовые данные имели опечатки в нем –

0

Как другие отметили, точка не соответствует @ -знак. В in_array() используется прямая совпадение, нет регулярного выражения (и, следовательно, нет заполнителя).

Смежные вопросы