разнесение данных в codeigniter

#css #codeigniter

#css #codeigniter

Вопрос:

это мой код для отображения фильтров с использованием функции разнесения

  <?php    if($a_row->a_filters !=''){
      $filters = explode(',', $a_row->a_filters);
      foreach ($filters as $filter_row):   $arr = explode("/", $filter_row, 2);   ?>
      <div class="col-sm-4 col-md-4 col-xs-12 no-padding">
       <span><strong><?php echo $arr[0]; ?></strong> :</span> <?php echo $arr[1]; ?>
      </div>
       <?php   endforeach; }   ?>
 

этот код отображает результат следующим образом

Светильник-Цвет: никелевый светильник-Цвет: хромированный светильник-Цвет: черный светильник-Цвет: светильник Branze-Цвет: коричневый светильник-Цвет: Медный светильник-Цвет: прозрачный светильник-Цвет: серый светильник-Цвет: Многоцветный светильник-Цвет: красный светильник-Цвет: белый светильник-Цвет: Желтый светильник-Цвет: синий Светильник-Цвет: зеленый Светильник-Цвет: фиолетовый Светильник-Цвет: Оранжевый Светильник-Цвет: Золотой светильник-Цвет: серебристый светильник-Цвет: Текстурное стекло-Цвет: коричневое стекло-Цвет: серое стекло-Цвет: Многоцветное стекло-Цвет: красное стекло-Цвет: белое стекло -Цвет: желтое стекло-Цвет: Синее стекло-Цвет: Зеленое стекло-Цвет: фиолетовое стекло-Цвет: оранжевый Форма: Форма конуса: Форма цилиндра: Форма барабана: Линейная форма: Круглая форма: Квадратная форма: Другое

но я хочу отобразить такой результат, используя implode или explode

Цвет светильника: никель, хром, черный, коричневый, медный, прозрачный, серый, многоцветный, красный, белый, желтый, синий, зеленый, фиолетовый, оранжевый, золотой, серебряный, текстурный

Цвет стекла: коричневый, серый, многоцветный, красный, Белый, желтый, синий, зеленый, фиолетовый, оранжевый

Форма: конус, цилиндр, барабан, линейный, круглый, квадратный, другой

Комментарии:

1. Можете ли вы поделиться запросом?

2. добавьте результат, о котором идет речь print_r($a_row->a_filters) .

3. В базе данных mysql значения столбцов a_filters хранятся в следующем формате: Светильник-Цвет / никель, Светильник-цвет / Хром, Светильник-цвет / черный, Светильник-Цвет / зеленый, Светильник-цвет / фиолетовый, Светильник-цвет / оранжевый, Светильник-цвет / золотой, Светильник-цвет / серебристый, Светильник-Цвет / текстура, Цвет стекла / коричневый, Цвет стекла / серый, Цвет стекла / синий, Цвет стекла / Зеленый, Цвет стекла / фиолетовый, Цвет стекла / Оранжевый, Форма / Конус, Форма / цилиндр, Форма / Барабан, Форма / Линейная, Форма / Круглая, Форма / Квадрат, Форма / Другое

4. но я хочу отделить его

Ответ №1:

 $text="Fixture-Colour/Nickel,Fixture-Colour/Crome,Fixture-Colour/Black,Fixture-Colour/Branze,Fixture-Colour/Brown,Fixture-Colour/Copper,Fixture-Colour/Clear,Fixture-Colour/Greay,Fixture-Colour/Multi-colour,Fixture-Colour/Red,Fixture-Colour/White,Fixture-Colour/Yellow,Fixture-Colour/Blue,Fixture-Colour/Green,Fixture-Colour/Violet,Fixture-Colour/Orange,Fixture-Colour/Gold,Fixture-Colour/Silver,Fixture-Colour/Texture,Glass-Colour/Brown,Glass-Colour/Grey,Glass-Colour/Orange,Glass-Colour/Multi-colour,Glass-Colour/Red,Glass-Colour/White,Glass-Colour/Yellow,Glass-Colour/Blue,Glass-Colour/Green,Glass-Colour/Violet,Glass-Colour/Orange,Shape/Cone,Shape/Cylinder,Shape/Drum,Shape/Linear,Shape/Round,Shape/Square,Shape/Other";

$filters = explode(',', $text);

/*For re-grouping the array */
foreach($filters as $filter_row){
    $arr = explode("/", $filter_row, 2);
    $new_array[$arr[0]][] = $arr[1];
}

/*Generating your expected output*/
foreach ($new_array as $key => $value) {
    echo $key.": ".implode(', ', $value);
    echo "<br />";
}