json verisini result edemiyorum (: Çözüldü :)
Formdan aldım
Bu şekle soktum :
[{"beden":["SMALL","MEDIUM","LARGE","X-LARGE"],"tip":"radio","özellik_adı":"beden"},{"renkler":["Beyaz","Gri","Siyah"],"tip":"radio","özellik_adı":"renkler"}]
Ama önce şu şekilde result etmek istiyorum tabii veritabanından da aynı şekilde çekerken de.
Özellik Adı : Beden
Özellikler : SMALL, MEDIUM, LARGE, X-LARGE
Tip : Radio
Özellik Adı : Renkler
Özellikler : Beyaz, Gri, Siyah
Tip : Radio
Bunları Ürün sayfasında düzenleyeceğim saatlerdir yapamadım. :)
Soru hatalı mı? 👎
Eğer sorunun kurallara aykırı olduğunu düşünüyorsanız lütfen bize bildirin!
Cevaplar (3)
Bende az evvel şöyle yaptım olur herhalde, hangisi mantıklı beden ve renkler kullanıcı tarafından belirleniyor ürün eklerken.
$jsn = json_encode($newarr,JSON_UNESCAPED_UNICODE);
$jsn1 = json_decode($jsn);
//print_r($jsn);
echo "<hr>";
foreach ($jsn1 as $k => $v) {
$ozellikad = $v->özellik_adı;
echo "<h2>".$ozellikad."</h2>";
foreach ($jsn1[$k]->$ozellikad as $ozval) {
echo $ozval."-";
}
echo "<br>";
echo "Tip : ".$v->tip."<br>";
}
json'da beden ve renkler yerine degerler
gibi bir key kullanırsan daha sağlıklı olur. Yine de bu haliyle şöyle yapabilirsin;
<?php
$json = '[
{
"beden": ["SMALL","MEDIUM","LARGE","X-LARGE"],
"tip":"radio",
"özellik_adı":"beden"
},
{
"renkler": ["Beyaz","Gri","Siyah"],
"tip":"radio",
"özellik_adı":"renkler"
}
]';
$array = json_decode($json, true);
foreach ($array as $item){
echo "Özellik adı: {$item['özellik_adı']}<br>Özellikler: " . implode(',', array_shift($item)) . "<br>Tip: {$item['tip']}<hr>";
}
?>