Я пытаюсь использовать array_search в простом массиве:

        echo "<br> Search for : -".ucfirst(strtolower(trim($rowData[0][2]))).'-';

Вот индекс значения (я его знаю, но хочу, чтобы PHP нашел его для меня> <):

        echo '<br>-'.$listMetiers[0].'-'; 

Вот полный массив:

        echo '<pre>';
        print_r($listMetiers);
        echo '</pre>';

        $id_metier = array_search(ucfirst(strtolower(trim($rowData[0][2]))),$listMetiers);

        if(!$id_metier)
        {
          echo ' NOT FOUND !<br>';
          $id_metier = -666;
        }
        else
        {
          echo 'GOOD : '.$id_metier.'<br>';
        }

Значение находится в массиве, но array_search его не находит! Посмотрите, что у меня получается при выполнении этого кода:

enter image description here

Что здесь происходит ?

0
Seba99 17 Окт 2015 в 18:01

2 ответа

Лучший ответ

array_searh возвращает 0, и PHP рассматривает это как ложное значение.

Вы должны изменить это

!$id_metier

В это

$id_metier === false
3
Nenad Mitic 17 Окт 2015 в 16:22

Ваш тест неудачный, используйте:

if($id_metier < 0){ // not found
// ...
} else {            // found
// ...
}
1
Ghilas BELHADJ 17 Окт 2015 в 15:06