Обход последнего прохода цикла php

120
07 апреля 2021, 03:50

Вот примерная схема цикла:

$img = array(
     [1]=>'фото 1',
     [2]=>'фото 2',
     [3]=>'фото 3',
     [4]=>'фото 4',
     [5]=>'',
    );
    $i = 1;

    while($img[$i]){
     $i++;
     echo $i;
    };

На практике картинки это строки, нужно вывести 4 фотографии если 5 строка пустая, и так далее(3 фото если 4 строка пустая и.т.д).

Проблема в том что если последняя строка пустая то он выполняет последний проход цикла и закрывается. То-есть выводит пустую строку.

Как это обойти?

Answer 1
$img = array('фото 1','фото 2','фото 3','фото 4','');
$i = 1;
//добавьте проверку на пустоту, и как только встретится пустая строка, цикл прервется
while($img[$i] !== ""){
 $i++;
 echo $i;
};

Вот рабочий пример

Answer 2
$img = array(
     'фото 1',
     'фото 2',
     '',
     'фото 4',
     '',
    );
    $i = 0;

    while($img[$i]){
     echo $img[$i];
     $i++;
    };

Результаты:

aaa:фото 1
aaa:фото 2
aaa:фото 3
aaa:фото 4

Сначала надо делать echo $img[$i];, а потом только счетчик прибавлять.

Answer 3

Вот не зависимо от того где будет пустое значение будут выведены все значения масива:

$img = array('фото 1','фото 2','фото 3','фото 4','','фото 5','');
foreach($img as $item){ 
    if($item != ""){ //если значениэ не пустое
        echo $item . "<br>"; // выводим значение
    }
}

Результат: фото 1 фото 2 фото 3 фото 4 фото 5

READ ALSO
Не получается передать объекты в массив

Не получается передать объекты в массив

Почему нельзя передать объекты в массив подобным образом?

103
Разница между Collections.sort() и сортировкой стримом

Разница между Collections.sort() и сортировкой стримом

Я пишу программу, которая выстраивает пирамиду из отсортированных чисел и возвращает двумерный массив

106
Room Database сложный фильтр для выборки

Room Database сложный фильтр для выборки

Всем привет! Ищу помощь у тех, кто сталкивался с подобной задачей или у тех, кто знает, как ее решить

175
Обновление данных в RecyclerView с помощью RecyclerView.OnScrollListener

Обновление данных в RecyclerView с помощью RecyclerView.OnScrollListener

Проблема в том, что при выполнение нового запроса на сервер после прокручивания у меня список полностью обновляется, необходимо, чтобы он добавлялся...

120