За последние 24 часа нас посетили 61975 программистов и 1677 роботов. Сейчас ищут 889 программистов ...

разобрать массив

Тема в разделе "PHP для новичков", создана пользователем Lexxbry, 12 дек 2018.

  1. Lexxbry

    Lexxbry Новичок

    С нами с:
    30 дек 2017
    Сообщения:
    48
    Симпатии:
    0
    Господа, доброго времени суток.
    есть задачка.
    получаем и выводим на страницу массив из бд
    PHP:
    1.  <?php if (is_array($product->extra_field)){?>
    2.             <div class="extra_fields">
    3.                 <?php foreach($product->extra_field as $extra_field){?>
    4.                     <div>
    5.                         <span class="label-name"><?php print $extra_field['name'];?>:</span>
    6.                         <span class="data"><?php print $extra_field['value'];?></span>
    7.                     </div>
    8.                 <?php }?>
    9.             </div>          
    10.         <?php }?>
    требуется некоторые параметры из данного массива скрывать при выводе.
    по факту они должны быть, но должны быть display:none;
    подскажите как такое организовать?
     
  2. MouseZver

    MouseZver Суперстар

    С нами с:
    1 апр 2013
    Сообщения:
    7.815
    Симпатии:
    1.332
    Адрес:
    Лень
    PHP:
    1. <?php foreach($product->extra_field as $extra_field){?>
    2. <? = ( $extra_field['???'] == '???' ? '<div>' : '<div style = "display:none">' ) ?>
    --- Добавлено ---
    никогда так не пиши.
    есть
    PHP:
    1. <?php
    2.  
    3. #code...
    4.  
    5. echo ....;
    или
    PHP:
    1. <? = 'hi' ?>
     
  3. Lexxbry

    Lexxbry Новичок

    С нами с:
    30 дек 2017
    Сообщения:
    48
    Симпатии:
    0
    я так и не писал
    это так компонент написан

    конструкция
    PHP:
    1.  <?php foreach($product->extra_field as $extra_field){?>
    2.                 <? = ( $extra_field['id'] == '16' ? '<div>' : '<div style = "display:none;">' ) ?>
    дает ошибку синтаксиса
     
  4. Dimon2x

    Dimon2x Старожил

    С нами с:
    26 фев 2012
    Сообщения:
    2.211
    Симпатии:
    186
    @Lexxbry должна быть версия php 7
     
  5. Lexxbry

    Lexxbry Новичок

    С нами с:
    30 дек 2017
    Сообщения:
    48
    Симпатии:
    0
  6. MouseZver

    MouseZver Суперстар

    С нами с:
    1 апр 2013
    Сообщения:
    7.815
    Симпатии:
    1.332
    Адрес:
    Лень
    <?=
    ошибся с пробелами
     
  7. Lexxbry

    Lexxbry Новичок

    С нами с:
    30 дек 2017
    Сообщения:
    48
    Симпатии:
    0
    @MouseZver да точно
    но убирает все поля
    плюс режет все дивы дальше
    переработал сейчас код
    PHP:
    1.   <?php if (is_array($product->extra_field)){?>
    2.             <div class="extra_fields">
    3.                 <?php foreach($product->extra_field as $extra_field){?>
    4.                 <?= ( $extra_field['id'] == '16' ? '<div class = "ext">' : '<div style = "display:none;">' ) ?>
    5.                     <div class="ext">
    6.                         <span class="label-name"><?php print $extra_field['name'];?>:</span>
    7.                         <span class="data"><?php print $extra_field['value'];?></span>
    8.                     </div>
    9.                 <?php }?>
    10.             </div>        
    11.         <?php }?>
    но все равно выводит только первый товар и применяет display:none;
    ко всему блоку <div class="extra_fields">
     
  8. Sail

    Sail Старожил

    С нами с:
    1 ноя 2016
    Сообщения:
    1.593
    Симпатии:
    362
    @Lexxbry, просто убери лишний <div class="ext">
     
  9. Lexxbry

    Lexxbry Новичок

    С нами с:
    30 дек 2017
    Сообщения:
    48
    Симпатии:
    0
    @Sail
    я же и пишу что если так
    PHP:
    1.   <?php if (is_array($product->extra_field)){?>
    2.             <div class="extra_fields">
    3.                 <?php foreach($product->extra_field as $extra_field){?>
    4.                 <?= ( $extra_field['id'] == '16' ? '<div>' : '<div style = "display:none;">' ) ?>
    5.                     <div>
    6.                         <span class="label-name"><?php print $extra_field['name'];?>:</span>
    7.                         <span class="data"><?php print $extra_field['value'];?></span>
    8.                     </div>
    9.                 <?php }?>
    10.             </div>        
    11.         <?php }?>
    то убирает все что выводил массив
    плюс зарезает все остальные товары целиком
     
  10. Lexxbry

    Lexxbry Новичок

    С нами с:
    30 дек 2017
    Сообщения:
    48
    Симпатии:
    0
    пошел другим путем
    просто не выводить характеристики
    PHP:
    1. <?php if (is_array($product->extra_field)){?>
    2.             <div class="extra_fields">
    3.                        <?php foreach($product->extra_field as $extra_field){
    4. if ($extra_field["name"] !== 'name haracteristic') {?>
    5.                                   <div>
    6.                         <span class="label-name"><?php print $extra_field['name'];?>:</span>
    7.                         <span class="data"><?php print $extra_field['value'];?></span>
    8.                     </div>
    9.                    <?php }?>    
    10.                 <?php }?>
    11.             </div>        
    12.         <?php }?>
     
  11. MouseZver

    MouseZver Суперстар

    С нами с:
    1 апр 2013
    Сообщения:
    7.815
    Симпатии:
    1.332
    Адрес:
    Лень
    Убери див тебе писали, прочти 100 раз пост с примером