2012-05-21 2 views
1

По какой-то причине, когда я перебираю массив с использованием цикла foreach, условие не сравнивает ключ со строкой. Мой массив имеет два индекса, первый из которых является целым числом, а второй - строкой.Сравнение ключей массива

$firmas[] = $credito['acreditado']; 
$firmas['cbi'] = "LIC. MARCELA SOTO ALARCÓN"; 

Я хочу сделать что-то другое, когда цикл обнаруживает, что ключ в тот момент это строка одна, но по какой-то причине, когда я оценить целочисленный индекс результат верен.

foreach($firmas as $key => $firma){ 
      var_dump($key); 
      var_dump($key=='cbi');die(); 
     } 

Выход

int(0) bool(true) 

Но, как вы можете видеть, что условие ищет строку «CBI», поэтому результат должен быть ложным с индексом целого числа и верно для строки.

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

+1

Использовать $ key === 'cbi' –

+0

и вырезать 'die();', который теперь заставляет остановиться после 1-й итерации ... – Bart

ответ

2

В PHP все строки равны 0, хотя и не эквивалентны ему. Попробуйте использовать === вместо ==.

Приложение: все строки , которые не начинаются с цифр равны 0.

+0

Спасибо, он работал таким образом –

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