#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 />";
}