foreach пропустить и добавить одну запись

307
16 февраля 2017, 00:55

Подскажите пожалуйста, как можно пропустить одну запись (если совпадает id) и вместо нее добавить следующую запись.

Есть блок с выводом последних 5 новостей, при просмотре одной новости. В этом блоке выводятся все последние новости с указанным лимитом в 5 новостей.

Если отрываю любую из последних 5 новостей, соответственно в блоке "последние новости" есть и эта открытая новость (что не совсем логично, показывать ее, на этой же странице).

Можно ли как-то если ID текущей открытой новости совпадает с ID в блоке последних новостей, пропустить ее и добавить к списку еще одну запись чтобы по прежнему в блоке оставалось 5 новостей?

Сейчас работает так:

foreach($mod->related as $related){ 
    if ($related->id == $id) {
        continue;
    } 
//related
}

1) в настройках указан лимит - 5 новостей

2) $related->id - это id последних новостей в блоке

3) $id - это ID текущей открытой новости

В данном случае, новость в блоке новостей не дублируется (пропускает). Но в итоге отображается не 5 новостей а 4 новости (т.к. одну пропускает из-за совпадения ID). Соответственно если открыть 6 новость, там будет отображаться их 5шт, т.к. ID не будет совпадать.

Как вариант можно указать лимит в 6 новостей, но тогда при открытии новостей после 6 записи в блоке будет их уже 7шт.

Как можно реализовать чтобы всегда было 5 новостей, но при этом не дублировалась новость в блоке.

Спасибо.

Answer 1

Сделай цикл for и лимит в 6 записей. Или ограничьте на уровне БД.

for ($i = 0; $i < count($mod->related) && $i < 5; $i++) {
    $related = $mod->related[$i];
    if($related->id == $id)
        continue;
    // related    
}
READ ALSO
Facebook 360 Photo sphere sharing

Facebook 360 Photo sphere sharing

У нас есть неразрешенная проблемка/задание

261
Ошибка при подключении curl

Ошибка при подключении curl

Вот простой код, который подсоединяется к бесплатным проксям (упрощенная версия, ничего не делает, только воспроизводит ошибку)

481
Выполнения строкового выражения в ПХП

Выполнения строкового выражения в ПХП

Всем доброго времени сутокЕсть див,туда вывожу через нажатие кнопок числа,записывается это все как строка

279
Ошибка запроса в jquery ajax в Laravel

Ошибка запроса в jquery ajax в Laravel

Отправляю запрос в базу, кликаю на кнопку сохранить отрабатывает beforeSend лоадер, и запись в базу доходит и записывается, но сам ajax возвращает...

418