Как выводить по 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 я сделал специально, чтобы было понятно ТС'у
Если вместо файла мы разобьем строку в массив
$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) и получите в каждой переменной первую и вторую строку файла соответственно.