Php strpos работает не так как ожидалось
От этого у меня сейчас глаза на лоб лезут. Это должно сработать, но это не так. Я сохраняю значения (названия округов), которые пользователь выбрал из многозначного выбора, в строке, разделенной запятыми. Затем, когда форма отправлена и отклонена, я использую эту строку, чтобы "выбрать" те, которые были выбраны ранее.
Что я уже пробовал:
Вот мой тестовый код:
<?php echo 'Previous selection: '.$saved_counties; echo '<br /><br />List of all counties:'; foreach ($counties as $one_county): echo '<br />'.$one_county['County']; if (strpos($saved_counties, $one_county['County'])) { echo ' (**** IN PREVOUS SELECTION ***)'; } endforeach; ?>
Когда я запускаю код, это то, что я получаю:
Предыдущий выбор: Барага,Барри,Бэй
Список всех округов:
Алькона
Элджер
Аллеган
Альпена
Антрим
Аренак
Барага
Барри (**** в предыдущем выборе ***)
Залив (**** в предыдущем выборе ***)
Бензи
Берриен
Ветка
Калхун
Касс
Шарлевуа
Чебойган
Чиппева
Клэр
Клинтон
Кроуфорд
Дельта
Дикинсон
Итон
Муравей
Почему он пропускает "Барагу"? Не имеет значения, какую группу я выберу. Он всегда пропускает первый из них в коде "foreach". Я пытался:
strpos($saved_counties, $one_county['County']) >= 0
Это привело к тем же результатам.
Я тоже пытался:
strpos($saved_counties, $one_county['County']) > 0
Это привело к повторному отбору всех из них.
$counties-это массив, в котором хранятся все 83 округа Мичигана. $saved_counties-это просто строка, разделенная запятыми, в которой хранится предыдущий выбор пользователя.