Как выводить по 2 строки из файла не рандомно а по порядке?

Как выводить по 2 строки из файла не рандомно, а по порядке, хоть сначала, хоть с конца?

иначе неработает и не выводит по две строки если не ставить рандомно, а это не совсем хорошо иногда бывает выводит две одинаковые строки

    $arr = file("reviews.dat");

shuffle($arr);

$res = array_slice($arr, 0, 2);

foreach ($res as $str) {

    echo $str;

}


$arr = file("reviews.dat");

shuffle($arr);

for($i=0; $i<2; $i++) {

    echo $arr[$i];  
}

Ответы (2 шт):

Автор решения: Алексей Шиманский

Скорее всего должно быть так:

for($i = 0; $i < count($arr); $i += 2) { // $i += 2 - для перехода по двум элементом в цикле
    echo $arr[$i];
    echo ' ';
    echo array_key_exists($i + 1, $arr) ? $arr[$i + 1] : '';
    echo "<br>";
}

Вторая строка включает в себя проверку потому, что число элементов может быть нечётным


Для сильно обеспокоенных людей - такой вывод echo я сделал специально, чтобы было понятно ТС'у

→ Ссылка
Автор решения: teran

Если вместо файла мы разобьем строку в массив

$data = "a,b,c,d,e,f";
$arr = explode(',', $data);

То следующий код получит первые два элемента, последние два элемента, и исходный массив разбитый на пары последовательных строк:

$first = array_slice($arr, 0, 2);
$last = array_slice($arr, -2, 2);
$pairs = array_chunk($arr, 2);

Можно написать [$first, $second] = array_slice($arr, 0, 2) и получите в каждой переменной первую и вторую строку файла соответственно.

→ Ссылка