if (strpos($row['6'], $val) !== FALSE)
оценивается как true , если $row['6']
содержит "dog" (если значение $val
равно "dog"). Таким образом, будет также оцениваться значение true , если строка в $row['6']
имеет значение «бульдог» или «что угодно, что угодно».
Кстати, зачем вам это условие: strlen($row['5']) > 4
? (который, я думаю, должен быть не менее strlen($row['6']) > 4
, если вы ищете на $row['6']
).
Что-то еще: не путаете ли вы строки и целые числа? Может быть if (strpos($row['6'], $val) !== FALSE)
должно быть if (strpos($row[6], $val) !== FALSE)
?
EDIT
Я бы предложил определить константы для ваших столбцов CSV для удобства чтения.
Как насчет, например:
define('CSV_ID', 5);
define('CSV_TEXT', 6);
//...
foreach ($arrCSV as $row) {
if (strpos($row[CSV_TEXT], $val) !== FALSE && strlen($row[CSV_ID]) > 4) {
//...
echo $row[CSV_TEXT];
}
}