Intereting Posts
Самый короткий путь на карте как получить ВСЕ результаты поиска Google, используя api Установка часовой пояс по умолчанию не работает, несмотря на то, что часовой пояс действителен Рекомендации и рекомендации по созданию сайта с прокси-сайтом DatePicker: невозможно установить свойство «currentDay» неопределенного, когда идентификатор нескольких массивов php изменение размера изображения при загрузке Можно ли зафиксировать поисковый запрос из поиска Google? API Карт Google возвращает «Недействительный запрос» в действительном запросе Практика базы данных и ООП в PHP Выберите случайные строки из таблицы mysql Замена пустой строки нулями в массиве php Что такое метод шифрования пароля по умолчанию Drupal? PayPal Donate Button Redirect после оплаты Как получить доступ к переменной PHP в JavaScript-коде? Загрузить файл с помощью AJAX в CodeIgniter. Выполняется даже при значении null / undefined

array_search () не находит 0-й элемент

У меня есть большой array символов биржевого тикера, так как я для проекта, пишущего на фондовом рынке моделирования webapp. Одна из моих вспомогательных функций – это определить, действителен ли введенный запас, проверив массив для символа. Для этого я использую array_search() . Проблема, которую я испытываю, – это проверка ошибок. Похоже, что поиск не поднимает 0-й элемент, хотя он полностью захватывает другие элементы. Вот часть массива:

 [0] => AAC [1] => AACC [2] => AACOU [3] => AACOW [4] => AAIT [5] => AAME [6] => AAON [7] => AAPL [8] => AAWW [9] => AAXJ [10] => ABAX [11] => ABCB [12] => ABCD [13] => ABCO [14] => ABFS [15] => ABIO [16] => ABMD [17] => ABTL [18] => ABVA [19] => ACAD [20] => ACAS [21] => ACAT [22] => ACCL 

Etc и т. Д. Как говорилось ранее, он отлично работает для других элементов, а не для 0-го. Он возвращает FALSE при поиске AAC.

Вот код PHP, который я использую.

 <?php if(isset($_GET[stock])) { $ticker = $_GET[stock]; $ticker = trim($ticker); print("<pre>Ticker is $ticker</pre>"); print("Validity: " . Stock::isValidStock($ticker)); print('<pre>'); $stock = Stock::getStockList(); print_r($stock); print((bool)array_search('AAC', $stock)); print('</pre></br>'); } ?> 

Вот тестовая веб-страница, которую я использую. Вы можете изменить запас, отредактировав строку запроса в URL-адресе. Как я уже сказал ?stock=GOOG ?stock=AAC возвращает false, а что-то вроде ?stock=GOOG – это правда. Спасибо за любую помощь!

array_search() возвращает ключ первого совпадения, если он найден. Когда указанный ключ равен 0, и вы бросаете его в bool, он станет ложным.

То, что вы хотите сделать, это сравнить его с false используя не идентичный оператор === :

 //if you don't need the index you can skip assigning it to a variable $index = array_search('AAC', $stock); if ($index !== false) { // found! } 

Я проверил ваш код, и я обнаружил, что одна проблема в этой строке

  print((bool)array_search('AAC', $stock)); 

вы отбрасываете его на bool, и из-за этого он ничего не возвращает для 0-го элемента.

его рабочий пример http://codepad.viper-7.com/VPveZH