мой последний элемент массива <td><?= $field['Rate #']; ?></td>
не будет отображаться, он отображает неопределенный индекс: Rate #, хотя все правильно. Кто-нибудь знает, почему это происходит? Спасибо за вашу помощь!
Содержимое файла CSV:
- Максимальный вес (кг), Цена, Валюта, CalcType, Множитель, Платформа, Имя пользователя, Скорость #
- 30,0,19,50, USD, wp001,1,, курс, CNRU
- 30.0,5.50, USD, opfrg, 1,, курс, CNRU
Просмотр:
<table class="table table-bordered">
<thead>
<tr>
<th>Max Weight (KG)</th>
<th>Price</th>
<th>Currency</th>
<th>Calculation Type</th>
<th>Multiplier</th>
<th>Platform</th>
<th>Username</th>
<th>Rate</th>
</tr>
</thead>
<tbody>
<?php foreach ($csvData as $field) : ?>
<tr>
<td><?= $field['Max Weight (KG)']; ?></td>
<td><?= $field['Price']; ?></td>
<td><?= $field['Currency']; ?></td>
<td><?= $field['Calc Type']; ?></td>
<td><?= $field['Multiplier']; ?></td>
<td><?= $field['Platform']; ?></td>
<td><?= $field['Username']; ?></td>
<td><?= $field['Rate #']; ?></td>
</tr>
<?php endforeach; ?>
</tbody>
</table>
csvreader. php:
var $fields;
var $separator = ',';
function parse_file($p_Filepath)
{
$lines = file($p_Filepath);
return $this->parse_lines($lines);
}
function parse_lines($p_CSVLines)
{
$content = FALSE;
foreach ($p_CSVLines as $line_num => $line) {
if ($line != '') { // skip empty lines
$elements = explode($this->separator, $line);
if (!is_array($content)) { // the first line contains fields names
$this->fields = $elements;
$content = array();
} else {
$item = array();
foreach ($this->fields as $id => $field) {
if (isset($elements[$id])) {
$item[$field] = $elements[$id];
}
}
$content[] = $item;
}
}
}
return $content;
}
Контроллер:
public function data()
{
$this->load->library('csvreader');
$filePath = base_url('application/csv/CSV_FILE.csv');
$data['csvData'] = $this->csvreader->parse_file($filePath);
$this->load->view('csv_data', $data);
}