У меня есть функция, которая, по сути, просматривает файл CSV и находит строки, которые соответствуют настройкам пользователя в их профиле. Во всяком случае ...
Проблема в том, что я проверяю файл CSV для каждого автомобиля (строки), а затем возвращаю значение, если автомобиль соответствует настройкам пользователя. Проблема в том, если у пользователя есть настройка для следующего:
- Honda Civic с 1993 по 2007
- Jeep Liberty с 2002 по 2018
И CSV имеет записи:
- Honda Civic 1996
- Honda Civic 2004
- Jeep Liberty 2010
... в настоящее время оператор if
возвращает только первую итерацию Honda Civic, а затем возвращает Jeep Liberty. Так что он никогда не знает, как перейти к следующему / последующему совпадению оператора if
.
private function find_vehicle($cars,$make,$model,$yr_start,$yr_end){
$tmp = explode("|", $model);
$model = $tmp[1];
echo 'Looking for: ' . $make . ' '. $model . ' between: '.$yr_start .'-'.$yr_end . '<br>';
foreach ( $cars as $car ) {
if ($make == $car[1] && $model == $car[2]){
if ($car[4] >= $yr_start && $car[4] <= $yr_end){
return $car;
}
}
}
return 0;
}
Как настроить оператор foreach
и / или if
, чтобы он не останавливался на первой версии модели / модели / года ... но чтобы он продолжал return
каждый матч как новый $car
?
В противном случае, в настоящее время вывод:
- Honda Civic 1996
- Jeep Liberty 2010
Но мне также нужно вернуть другой соответствующий Honda Civic 2004