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

สำหรับผู้ที่ เริ่มต้น Programming - PHP มีอะไร แนะนำ หรือข้อสงสัยต้องบอร์ด นี้ คนที่มีความรู้ แบ่งปันคนอื่นบ้างนะ ปัญหาการเขียนโปรแกรม แบบ OOP Session Cookies php network

Moderators: mindphp, ผู้ดูแลกระดาน

User avatar
thatsawan
PHP VIP Members
PHP VIP Members
Posts: 26624
Joined: 31/03/2014 10:02 am
Contact:

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

Post by thatsawan »

Code: Select all

<?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
_________________

Code: Select all

<?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/>";
User avatar
mindphp
ผู้ดูแลระบบ MindPHP
ผู้ดูแลระบบ MindPHP
Posts: 25456
Joined: 22/09/2008 6:18 pm
Contact:

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

Post by mindphp »

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

object แสดงด้วย
$v->key
ติดตาม VDO: http://www.youtube.com/c/MindphpVideoman
ติดตาม FB: https://www.facebook.com/pages/MindphpC ... 9517401606
หมวดแชร์ความรู้: https://www.mindphp.com/forums/viewforum.php?f=29
รับอบรม และพัฒนาระบบ: https://www.mindphp.com/forums/viewtopic.php?f=6&t=2042
User avatar
thatsawan
PHP VIP Members
PHP VIP Members
Posts: 26624
Joined: 31/03/2014 10:02 am
Contact:

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

Post by thatsawan »

Code: Select all

$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"} ดึงค่าชุดนี้่ออกมา ----
User avatar
mindphp
ผู้ดูแลระบบ MindPHP
ผู้ดูแลระบบ MindPHP
Posts: 25456
Joined: 22/09/2008 6:18 pm
Contact:

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

Post by mindphp »

Code: Select all

$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/>';
    }
}
 
ติดตาม VDO: http://www.youtube.com/c/MindphpVideoman
ติดตาม FB: https://www.facebook.com/pages/MindphpC ... 9517401606
หมวดแชร์ความรู้: https://www.mindphp.com/forums/viewforum.php?f=29
รับอบรม และพัฒนาระบบ: https://www.mindphp.com/forums/viewtopic.php?f=6&t=2042
Post Reply
  • Similar Topics
    Replies
    Views
    Last post

Return to “Programming - PHP”

Who is online

Users browsing this forum: nai_cyp and 18 guests