แจ้ง error วนลูป array ซ้อน array ค่าที่ส่ง json_encode "Json -> PHP"

ตอบกระทู้

รูปแสดงอารมณ์
:icon_plusone: :like: :plusone: :gfb: :-D :) :( :-o 8O :? 8) :lol: :x :P :oops: :cry: :evil: :twisted: :roll: :wink: :!: :?: :idea: :arrow: :| :mrgreen: :angry: :baa: :biggrin:
รูปแสดงอารมณ์อื่นๆ

BBCode เปิด
[img] เปิด
[url] เปิด
[Smile icon] เปิด

กระทู้แนะนำ
   

มุมมองที่ขยายได้ กระทู้แนะนำ: แจ้ง error วนลูป array ซ้อน array ค่าที่ส่ง json_encode "Json -> PHP"

Re: แจ้ง error วนลูป array ซ้อน array ค่าที่ส่ง json_encode "Json -> PHP"

โดย mindphp » 07/07/2014 12:45 am

โค้ด: เลือกทั้งหมด

$json = '{"a":"1","b":"2","aa":{"aaa":"111"}}';

$b = json_decode($json); //json -> php = object 
foreach ($b as $key => $value) {
    if(is_object($value)){
        echo $key .'=' . $value->aaa;
    } else {
        echo $key .'='.$value .'<br/>';
    }
}
 

Re: แจ้ง error วนลูป array ซ้อน array ค่าที่ส่ง json_encode "Json -> PHP"

โดย thatsawan » 06/07/2014 9:29 pm

โค้ด: เลือกทั้งหมด

$json2 = '{"a":"1","b":"2"}';
//var_dump(json_decode($json)); // json -> php = object 
//var_dump(json_decode($json, true)); // json -> php = array


$a = json_decode($json2,true); //json -> php = object 
    foreach($a as $key => $value){
    echo "$key = $value <br/>";
    }
echo "<hr/>";
echo $a['a'];

echo "<hr/>";
$b = json_decode($json2); //json -> php = object 
    foreach($a as $key => $value){
    echo "$key = $value <br/>";
    }
echo "<hr/>";
echo $b->a; 
ทั้ง 2 เเบบได้ผลเหมือนกัน เลย เเต่ จะดึงข้อมูล array ซ้อน ทำยังไงค่ะ
$json = '{"a":"1","b":"2","aa":{"aaa":"111"}}';
แบบนี้ก้ออ้างถึงได้ เเค่ 1
echo $a['a'];
echo $b->a;
---- หนูอยากให้มัน "aa":{"aaa":"111"} ดึงค่าชุดนี้่ออกมา ----

Re: แจ้ง error วนลูป array ซ้อน array ค่าที่ส่ง json_encode "Json -> PHP"

โดย mindphp » 06/07/2014 6:04 pm

ลอง print_r()
หรือ
var_dump()
ดูว่าตัวแปลเป็นอะไร array หรือ object
array แสดงด้วย
$v['key']

object แสดงด้วย
$v->key

แจ้ง error วนลูป array ซ้อน array ค่าที่ส่ง json_encode "Json -> PHP"

โดย thatsawan » 06/07/2014 2:52 pm

โค้ด: เลือกทั้งหมด

<?php
$json2 = '{"a":"1","b":"2"}';
echo "<hr/>";
echo json_encode($json);
echo "<hr/>";
$a = json_decode($json2);
    foreach($a as $key => $value){
    echo "$key = $value <br/>";
    }
echo "<hr/>";
?>
ผล ที่ได้
a = 1
b = 2
_________________

โค้ด: เลือกทั้งหมด

<?php
$json = '{"a":"1","b":"2","aa":{"aaa":"111"}}';
$b = json_decode($json);
        foreach($b as $key => $value){
            echo "$key = $value <br/>";

        foreach($value as $k => $v)
            echo "$k = $v <br/>";
}
echo "<hr/>";
?>
ผลที่ได้ :cry: :cry:
Object of class stdClass could not be converted to string
foreach($b as $key => $value){
echo "$key = $value <br/>";

Invalid argument supplied for foreach()
foreach($value as $k => $v)
echo "$k = $v <br/>";

ข้างบน