2016-10-24 3 views
1

Как отображать строки в обратном порядке?Показать строки в обратном порядке fgetcsv

CSV файл:

column1; column2; колонка3

cell1; cell1; cell1

CELL2; CELL2; CELL2

CELL3; CELL3; CELL3

Он должен выглядеть следующим образом:

column1; column2; колонка3

CELL3; CELL3; CELL3

CELL2; CELL2; CELL2

cell1; cell1; cell1

Код:

if (($handle = fopen($path, 'r')) !== FALSE) 
{ 
    echo '<table class="table table-striped table-bordered"><thead>'; 
    // Get headers 
    if (($data = fgetcsv($handle, 1000, ';')) !== FALSE) 
    { 
     echo '<tr><th>'.implode('</th><th>', $data).'</th></tr>'; 
    } 
    echo '</thead><tbody>'; 
    // Get the rest 
    while (($data = fgetcsv($handle, 1000, ';')) !== FALSE) 
    { 
     echo '<tr><td>'.implode('</td><td>', $data).'</td></tr>'; 
    } 
    fclose($handle); 
    echo '</tbody></table>'; 
} 

авансовый.

+0

отправил этот комментарий как ответ – JOUM

+0

Спасибо большое :-) – Madsen

ответ

1

Собирают первый

$collect = array(); 
while (($data = fgetcsv($handle, 1000, ';')) !== FALSE) 
{ 
    $collect[]= '<tr><td>'.implode('</td><td>', $data).'</td></tr>'; 
} 
echo implode(PHP_EOL,array_reverse($collect)); 

Обратный массив в конце.

1

Вот что вам нужно сделать: вместо прямого echo ИНГ строку - сохранить его в переменной:

// Get the rest 
$rest = ''; 
while (($data = fgetcsv($handle, 1000, ';')) !== FALSE) 
{ 
    // main trick here - add every new row BEFORE old ones 
    $rest = '<tr><td>'.implode('</td><td>', $data).'</td></tr>' . $rest; 
} 
// echo gathered data 
echo $rest; 
Смежные вопросы