Неопределенный индекс для последнего элемента массива - PullRequest
0 голосов
/ 23 апреля 2020

мой последний элемент массива <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);
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...