php json yazdırma
böyle bir json datası var elimde ben servis1 , servis2 yazan yeri yazdırmak istiyorum ama başaramadım
{
"servis1": {
"Category": "activation",
"Qty": 2000,
"Price": 14.83
},
"servis2": {
"Category": "activation",
"Qty": 11413,
"Price": 19
}
bu benim php kodum
<?php
session_start();
include"/vendor/autoload.php";
include"/baglan.php";
//$insert = $DB->query("INSERT INTO sc_ulke(ulke_isim) VALUES(?)", array($_POST["ulke_isim"]));
$ulke = $DB->query("SELECT * FROM sc_ulke");
foreach ($ulke as $value) {
$url = file_get_contents("xxxxx".trim($value["ulke_isim"])."/xxxx");
$json = json_decode($url,true);
print_r($json);
}
?>
Soru hatalı mı? 👎
Eğer sorunun kurallara aykırı olduğunu düşünüyorsanız lütfen bize bildirin!
Cevaplar (7)
sanırım direkt döngü içindeki keyi almak istiyorsun ben böyle anladım onu yapmak için döngüye sokup bir arraya pushlayabilirsin keyleri
yani şöyle ;
<?php
$keys = array();
foreach($decode_json as $key => $value){
$keys[] = $key;
}
?>
buradan çıkan sonuç sana servis1, servis2 , hepsiburada gibi yani keyde ne yazıyorsa onu döndürecektir .
arraydeki key değerini almaya çalışıyorsunuz sanırım.
key()
fonksiyonu işinizi görecektir.
https://www.php.net/manual/tr/function.key.php
$array = ["servis1" => ["Category" => "activation", "Qty" => 2000, "Price" => 14.83]];
echo key($array);
servis1, servis2 nin içindekilerini alabiliyorum ben servis1,servis2 yi almak isitiyorum örnek kod daki gibi haraj,hepsiburadacom servis simlerini ve "virtual25" oporatörlein isimlerini
"haraj": {
"virtual21": {
"cost": 36,
"count": 2405
},
"virtual25": {
"cost": 33,
"count": 629
},
"hepsiburadacom": {
"virtual21": {
"cost": 7,
"count": 4
},
"virtual23": {
"cost": 20,
"count": 1000
}
},
tam olarak nasıl yazdırmayı istiyorsun.
aşağıdaki gibi tüm veriyi yazdırmak için döngüye alabilirsin.
foreach($json as $key => $service){
$category = $service["Category"];
$qty = $service["Qty"];
$price = $service["Price"];
echo "$key : category -> $category, qty -> $qty, price -> $price <br>";
}
veya sadece istediğini yazdırmak için aşağıdaki gibi yazdırabilirsin.
$category = $json["servis1"]["Category"];
$qty = $json["servis1"]["Qty"];
$price = $json["servis1"]["Price"];
echo "category -> $category, qty -> $qty, price -> $price";
json verinin en sonundaki süslü parantez eksik bu yüzden sonuç alamıyorsun.