@valeriyashiryaeva

Как выбрать определенные элементы в цикле foreach php?

Помогите, пожалуйста.

есть код на сайте

{foreach $product->features as $f}
	<li>
		<label>{$f->name}</label>
                <span><a href="">{$f->value}</a></span>
	</li>
{/foreach}

он выводит 5 характеристик товара и их значения.
нужно чтобы ссылка была только в 3м и 5м значениях, а остальные соответственно без ссылки.

я почти совсем не знакома с php и буду очень признательна, если не станете ругаться (ну вдруг вопрос глупый..)
  • Вопрос задан
  • 2906 просмотров
Пригласить эксперта
Ответы на вопрос 2
Immortal_pony
@Immortal_pony Куратор тега PHP
нужно чтобы ссылка была только в 3м и 5м значениях, а остальные соответственно без ссылки.

В представленном куске кода не вижу, чтоб где-то выводилась какай-либо ссылка. Ну да предположим, что она там все-таки есть.

Данный код не является PHP-кодом. Используется какой-то шаблонизатор?
На PHP это будет выглядеть примерно так:
foreach ($product->features as $iterator=>$f) {
    echo $f->name;
    echo $f->value;

    if (in_array($iterator, [2,4])) {
        echo $f->link; // Выводим ссылку
    }
}
Ответ написан
Комментировать
mr_T
@mr_T
Web-разработчик
Это не php в чистом виде, а какой-то шаблонизатор. Не уверен, что в нем можно добавить код для того, чтобы увидеть индекс товара. Можно попробовать заменить
{foreach $product->features as $f}
на
{foreach $product->features as $i => $f}
Но это может не сработать, если массив $product -> features индексирован не подряд, а, например, идентификаторами. С другой стороны индекс может оказаться информативным и можно будет написать что-то типа
{if $i == 'feature_with_link'}
<span><a href="">{$f->value}</a></span>
{else}
<span>{$f->value}</span>
{endif}

Вообще, чтобы что-то более конкретное подсказать, нужно более подробное объяснение. Выведи структуру массива $product -> features на экран через print_r (или var_dump).
Ответ написан
Ваш ответ на вопрос

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

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