Intereting Posts
я могу добавить массив в предложение where для update_batch в codeigniter Любое обходное решение для использования PHP SoapClient с локальным файлом WSDL (NON-URI)? На локальном хосте два разных проекта используют один и тот же сеанс Отправка электронной почты с localhost в php в windows Как отображать значения данных круговой диаграммы для каждого фрагмента в chart.js фильтровать изображения с веб-страницы по размеру создать таблицу mysql, если она не существует Отображение сообщений об ошибках в Laravel после перенаправления с контроллера Форма обратной связи PHP – Хотите остаться на моем сайте после отправки угловые скобки php PHP получает путь к каждому файлу в папке / подпапке в массив? Загрузка cURL-файлов больше не работает после обновления с PHP 5.5 до 5.6 Перегружать поведение count () при вызове определенных объектов как отобразить список имен таблиц базы данных в codeigniter Алгоритм для получения имени столбца, подобного excel.

strpos не соответствует

Я хочу найти одну строку и получить связанные значения, но в тесте функция, в каждом случае поиск слов ( Title or Would Or Post or Ask ) отображение (выдача) только одного выходного Title,11,11 !!!! как это можно исправить?

  // test array $arr = array('Title,11,11','Would,22,22','Post,55,55','Ask,66,66'); // define search function that you pass an array and a search string to function search($needle,$haystack){ //loop over each passed in array element foreach($haystack as $v){ // if there is a match at the first position if(strpos($needle,$v) == 0) // return the current array element return $v; } // otherwise retur false if not found return false; } // test the function echo search("Would",$arr); 

Related of "strpos не соответствует"

Проблема заключается в strpos . http://php.net/manual/en/function.strpos.php
Стог сена – это первый аргумент, а второй аргумент – игла.
Вы также должны выполнить сравнение === для получения 0.

 // test array $arr = array('Title,11,11','Would,22,22','Post,55,55','Ask,66,66'); // define search function that you pass an array and a search string to function search($needle,$haystack){ //loop over each passed in array element foreach($haystack as $v){ // if there is a match at the first position if(strpos($v,$needle) === 0) // return the current array element return $v; } // otherwise retur false if not found return false; } // test the function echo search("Would",$arr); 

Эта функция может возвращать Boolean FALSE, но может также возвращать небулевое значение, которое оценивается как FALSE, например 0 или «". Пожалуйста, прочитайте раздел о Booleans для получения дополнительной информации. Используйте оператор === для проверки возвращаемого значения этой функции.

Источник: http://php.net/strpos

измените эту проверку:

 // if there is a match at the first position if(strpos($needle,$v) == 0) // return the current array element return $v; 

в

 // if there is a match at the first position if(strpos($needle,$v) === 0) return $v; 

или

 // if there is a match anywhere if(strpos($needle,$v) !== false) return $v; 

strpos возвращает false, если строка не найдена, но проверка на false == 0 дает true, потому что php обрабатывает 0 как false . для предотвращения этого вам придется использовать оператор === (или !== , в зависимости от того, что именно вы пытаетесь сделать).