#php
#php
Вопрос:
У меня есть массив, подобный :
$array = array('a amp; b' => 'A amp; B', 'c amp; d'=>'C amp; D');
$string = 'a amp; b';
когда я это делаю in_array(ucwords($string),$array)
, я получаю FALSE
если я это сделаю array_key_exists($string, $array)
, я также получу FALSE
есть идеи? Спасибо
Обновление: похоже, что проблема заключалась в том, как я собирал $string (используя fuelphp Uri:: Segment(3) ), хотя визуально собранная строка кажется идентичной, по какой-то причине это не так. Спасибо за ваш быстрый ввод
Комментарии:
1. Работает здесь: codepad.org/ZWXn9Wlh …. ваш код на самом деле выдает ошибку, потому что вы пропустили
array
, но он не возвращаетfalse
.2. вы отредактировали свой код, но теперь он вернет true для обеих функций, так в чем же ваша реальная проблема?
3. Спасибо, Феликс, похоже, что моя проблема возникает откуда-то еще, в основном из-за того, как я собираю свою переменную $string. спасибо за вашу помощь
4. Я получаю свою строку $string из URL-адреса, используя fuelphp Uri::segment() … Я должен понять, почему возвращаемая переменная не идентична, даже если так кажется
Ответ №1:
Ваш $array
на самом деле не является массивом?
$array = array('a amp; b' => 'A amp; B', 'c amp; d' => 'C amp; D');
Вместо:
$array = ('a amp; b' => 'A amp; B', 'c amp; d' => 'C amp; D');
Ответ №2:
Это работает так, как можно было бы ожидать от меня:http://codepad.org/U1WtWiGe
Проблема с вашим кодом заключается в том, что вы пропустили array
ключевое слово перед вашим массивом, и поэтому он не будет массивом.
$array = array('a amp; b' => 'A amp; B', 'c amp; d' => 'C amp; D');
^^^^^
Кстати, я немного удивлен, что вам вообще удалось его запустить, поскольку вы получили бы ошибку синтаксического анализа с предоставленным вами кодом.