При выполнении цикла foreach для массива, встроенного в несколько записей, я не могу заставить массив отображать только один массив, установленный для каждой записи. Вместо этого он отображает все записи массива для каждого экземпляра в каждом результате. Я читаю файл CSV, и этот файл может иметь 25 записей или 500 записей (число записей никогда не известно), но при чтении поля «Опции» в списке отображается массив для всех записей. Результаты. Вот код, который я запускаю:
$option_list = explode(',', $csvdata['Options']);
foreach ($option_list as $feature) {
$output .= '<li>' . $feature . '</li>';
}
$content = '<ul>' . $output . '</ul>';
Как видите, я просто создаю неупорядоченный список. Хотя я успешно создал неупорядоченный список, каждый массив в поле «Параметры» отображается в результатах в виде одного огромного неупорядоченного списка. Это не список одного массива для каждой отдельной записи.
Вот формат CSV:
Year Make Model Color Options (the array)
2010 Chevy Camaro Black 2dr, convertible, 6.2L, V8
2011 Dodge Charger Red 2dr, coupe, 3.6L, V6
2013 Ford F250 Blue 4WD, Crew Cab, V10, Tow Package
Выход создает следующий неупорядоченный список:
<ul>2010 Chevy Camaro Black
<li>2dr
<li>convertible
<li>6.2L
<li>V8
<li>2dr
<li>coupe
<li>3.6L
<li>V6
<li>4WD
<li>Crew Cab
<li>V10
<li>Tow Package</li></ul>
И это делается для каждой записи. Мне нужен неупорядоченный список для представления только той записи, к которой он относится в файле CSV, и завершения цикла для каждой записи. Пожалуйста, дайте мне знать, что мне не хватает.
Вы не очищаете $input
до цикла, поэтому он по-прежнему содержит элементы списка из предыдущей строки в CSV. Просто добавь
$output = '';
перед foreach
заявление.
Других решений пока нет …