2013-05-25 5 views
2

Я использую простой скрипт для поиска элемента в массиве, какPHP in_array() или array_search() не работает

$restricted = array('root/base', 'root2'); 
    print_r($restricted); 
    if(array_search('root/base', $restricted)){ 
     echo "1"; 
    } else { 
     echo "0"; 
    } 

Но я всегда получаю следующие выходные данные

Array ([0] => root/base [1] => root2) 0 

Это означает, что array_search не находит элемент в данном массиве. Кто-нибудь может рассказать о том, что происходит?

Я также попытался заменить array_search() на in_array(). Но это тоже вернуло ту же ошибку.

+0

in_array works для меня –

+1

Это не дублированный вопрос - проблема этого человека вызывает значение 0 для FALSE. Задача OP в упомянутом «дублированном вопросе» - это ошибочные массивы для разделенных запятыми строк. – Jan

ответ

13

От PHP DOC

array_search - поиск в массиве заданного значения и возвращает соответствующий ключ в случае успешного

Индекс 0, поэтому вы думаете, его не удается

Использовать

array_search('root/base', $restricted) !== false 
+0

но почему in_array() не удается? –

+2

Я не вижу 'in_array' в вашем примере, но вижу http://eval.in/31491 – Baba

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