PHP - strpos на элементах массива? - PullRequest
0 голосов
/ 18 сентября 2018

По какой-то причине я не могу заставить strpos работать для поиска в моем массиве, даже если $jobList[1] и $titlesearch имеют одинаковые значения ... Извините, если это очевидно, но я все еще довольно новичок в кодировании!

Я начинаю с моего $data массива, который выглядит следующим образом:

Array
(
    [0] => P0001    Lifeguard   descexample 18/09/18    parttime    fixedterm       mail    vic

    [2] => P0002    IT Manager  descexample 18/09/18    fulltime    ongoing post    mail    sa

)

Затем я собираю каждую из этих записей в их собственный массив ...

for ($i = 0; $i < count($data); $i++) {
    $jobList = explode("\t", $data[$i]);
}

Array
(
    [0] => P0001
    [1] => Lifeguard
    [2] => descexample  
    [3] => 18/09/18
    [4] => parttime
    [5] => fixedterm
    [6] => 
    [7] => mail
    [8] => vic

)
Array
(
    [0] => P0002
    [1] => IT Manager
    [2] => descexample  
    [3] => 18/09/18
    [4] => fulltime
    [5] => ongoing
    [6] => post
    [7] => mail
    [8] => sa

)

Теперь я пытаюсь выполнить поиск в этих массивах из пользовательского ввода $titlesearch и найти совпадения с названиями должностей $jobList[1]:

if (strpos($jobList[1], $titlesearch)) {
        echo "nice one";
    }

Независимо от того, какие циклы я пытаюсь выполнить,strpos никогда не возвращает true, даже если я повторяю значения, и они оба дают одинаковый результат, поэтому я действительно не уверен, что делаю неправильно: '(

Любая помощь очень ценится!

1 Ответ

0 голосов
/ 18 сентября 2018

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

Попробуйте что-то вроде этого:

if (strpos($jobList[1], $titlesearch) !== false) {
        echo "nice one";
}
...