Есть массив с данными, нужно перезаписать его, что бы получить массив с данными для каждого товара. Но, еще нужно записать несколько одинаковых свойств в одну строку в виде value 1, <br> value 2, <br> value3 и обернуть это в <![CDATA[ . . . ]]>. У меня получилось записать в таком виде только 2 значения(второй foreach), как сделать если значений будет больше?
$feature = array();
$result = [
{"feature_id"=>"171", "name"=>"param 1","product_id"=>5,"value"=>"value 1"},
{"feature_id"=>"171", "name"=>"param 1","product_id"=>5,"value"=>"value 2"},
{"feature_id"=>"295", "name"=>"param 2","product_id"=>5,"value"=>"value 555"},
{"feature_id"=>"171", "name"=>"param 1","product_id"=>5,"value"=>"value 3"}
];
foreach($result as $f)
{
if(!empty($f->name))
{
$features[$f->product_id][$f->name] = $f->value;
}
}
//////
foreach($result as $f)
{
if(!empty($f->name))
{
if(is_array($features[$f->product_id]) && array_key_exists($f->name, $features[$f->product_id])) {
$features[$f->product_id][$f->name] = "<![CDATA[" . $features[$f->product_id][$f->name] . ", <br> " . $f->value . "]]>";
} else {
$features[$f->product_id][$f->name] = $f->value;
}
}
}
Основные этапы разработки сайта для стоматологической клиники
Продвижение своими сайтами как стратегия роста и независимости