Доброго времени суток.
Проблема такая, есть массив слов, в котором мне нужно найти слова с определенным началом или концом. Это я реализовал. Дальше появилась необходимость третьего параметра - это поиск в середине слова, какого то набора букв. Это мне тоже удалось сделать. Но не могу сделать так, чтобы последний параметр был необязательным.
Вот цикл, перебирающий массив слов.
//$viewFile - массив слов
//$starting - начало
//$ending - конец
//$middle - в центре
//$*Chars - количество символов
for ($i = $start ; $i <= $amount && $currentCount < $step; $i++) {
$str = trim($viewFile[$i]); //обрезаем пробелы
$haystack = strlen($str); //считаем количество символов в слове
if ($str != "" && strcasecmp(substr($str, 0, $startingChars), $starting) == 0 && strcasecmp(mb_substr($str, $haystack - $endingChars), $ending) == 0 && stripos($str, $middle) ) {
$currentCount++;
echo '<span class="badge">' . ($currentCount+$curr) . '</span> ';
echo $viewFile[$i];
echo '<br>';
}
}
В общем этот код выдает результат, только если задан $middle. Как сделать так, чтобы при $middle = '' поиск шел только по первым двум параметрам?