@anton99zel
29а класс средней школы №7

Как поправить условие вывода из массива php?

while ($arItems = $dbBasketItems->Fetch())
{
$arBasketItems[] = $arItems;
//print ($arItems[PRODUCT_ID]); выведет без пробелов 12804 12805 12806 20910
if ($arCurOffer['ID'] == $arItems[PRODUCT_ID]) 
echo 'Уже в корзине'; else echo 'Купить';
}

Выводит у товаров:
КупитьКупитьКупитьУже в корзине

вместо
Купить

или
Уже в Корзине

т.е. у меня 4 раза выводится вместо одного, ровно по числу товаров в (корзине) $arItems[PRODUCT_ID]. Как вывести один раз?
Смысл такой, что если такой товар $arItems[PRODUCT_ID] присутствует в корзине, то у кнопки $arCurOffer['ID'] надо поменять название.
  • Вопрос задан
  • 93 просмотра
Решения вопроса 1
ALejnin
@ALejnin
Web-разработчик
У Вас в принципе идет перебор товаров. Учитывая, что это битрикс, менять логику не будем:
$inBasket = false;
while ($arItems = $dbBasketItems->Fetch())
{
    $arBasketItems[] = $arItems;
    //print ($arItems[PRODUCT_ID]); выведет без пробелов 12804 12805 12806 20910
    if ($arCurOffer['ID'] == $arItems['PRODUCT_ID']){ // Пожалуйста, ключ массива заключайте в кавычки, пишите правильно.
        $inBasket = true;
     }
}
echo $inBasket ? 'Уже в Корзине' : 'Купить';
Ответ написан
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы