【问题标题】:Displaying Json array in echo which is nested array data in blade laravel在 echo 中显示 Json 数组,它是刀片 laravel 中的嵌套数组数据
【发布时间】:2020-04-10 13:38:24
【问题描述】:

这是我的代码,我想回显这个 $json 中的所有数据。

$json = '{"year":"2018","month":"4","name":"Apr 2018 - Sept 2018","description":null,"code":"2018\/04","session_from_at":{"date":"2018-04-16 00:00:00.000000","timezone_type":3,"timezone":"Asia\/Singapore"},"session_to_at":{"date":"2018-09-21 00:00:00.000000","timezone_type":3,"timezone":"Asia\/Singapore"},"registered_from_at":{"date":"2018-04-16 00:00:00.000000","timezone_type":3,"timezone":"Asia\/Singapore"},"registered_to_at":{"date":"2018-04-20 00:00:00.000000","timezone_type":3,"timezone":"Asia\/Singapore"},"added_dropped_from_at":null,"added_dropped_to_at":null,"withdrew_from_at":null,"withdrew_to_at":null,"attended_from_at":{"date":"2018-04-20 00:00:00.000000","timezone_type":3,"timezone":"Asia\/Singapore"},"attended_to_at":{"date":"2018-04-29 00:00:00.000000","timezone_type":3,"timezone":"Asia\/Singapore"},"cw_marked_from_at":{"date":"2018-04-20 00:00:00.000000","timezone_type":3,"timezone":"Asia\/Singapore"},"cw_marked_to_at":{"date":"2018-04-29 00:00:00.000000","timezone_type":3,"timezone":"Asia\/Singapore"},"fe_marked_from_at":{"date":"2018-04-29 00:00:00.000000","timezone_type":3,"timezone":"Asia\/Singapore"},"fe_marked_to_at":{"date":"2018-09-21 00:00:00.000000","timezone_type":3,"timezone":"Asia\/Singapore"},"created_by":1,"updated_by":1,"id":2}';

$arr = json_decode($json,true);

foreach($arr as $key=>$value){
    echo $key . "<br>";
    echo $value . "<br>"; // PHP Notice:  Array to string conversion in /workspace/Main.php on line 11
// not displaying the value
}
?>

问题出在 session_from_at 上的数据循环中,其中的数组中有三个数据。

【问题讨论】:

    标签: php json laravel foreach laravel-blade


    【解决方案1】:

    你得到一个错误,因为其他 $value 是一个你不能回显它的数组,所以尝试检查它的数组或对象是否像这样:

    foreach($arr as $key=>$value){
        echo $key . "<br>";
        if(is_object($value) || is_array($value)){
            foreach($value as $key2=>$value2){
                 echo $key2 . "<br>";
                 echo $value2 . "<br>";
            }
        }else{
            echo $value . "<br>";
        }
    
    }
    

    【讨论】:

    • 如果此解决方案有效,则接受答案.... @MuhammadRahim
    【解决方案2】:

    我认为您没有使用刀片。你的文件名是Main.php 如果您使用刀片,我建议您使用@foreach 而不是foreach

    json_decode 之后,数组里面还有一个数组。

    试试这个代码:

    $json = '{"year":"2018","month":"4","name":"Apr 2018 - Sept 2018","description":null,"code":"2018\/04","session_from_at":{"date":"2018-04-16 00:00:00.000000","timezone_type":3,"timezone":"Asia\/Singapore"},"session_to_at":{"date":"2018-09-21 00:00:00.000000","timezone_type":3,"timezone":"Asia\/Singapore"},"registered_from_at":{"date":"2018-04-16 00:00:00.000000","timezone_type":3,"timezone":"Asia\/Singapore"},"registered_to_at":{"date":"2018-04-20 00:00:00.000000","timezone_type":3,"timezone":"Asia\/Singapore"},"added_dropped_from_at":null,"added_dropped_to_at":null,"withdrew_from_at":null,"withdrew_to_at":null,"attended_from_at":{"date":"2018-04-20 00:00:00.000000","timezone_type":3,"timezone":"Asia\/Singapore"},"attended_to_at":{"date":"2018-04-29 00:00:00.000000","timezone_type":3,"timezone":"Asia\/Singapore"},"cw_marked_from_at":{"date":"2018-04-20 00:00:00.000000","timezone_type":3,"timezone":"Asia\/Singapore"},"cw_marked_to_at":{"date":"2018-04-29 00:00:00.000000","timezone_type":3,"timezone":"Asia\/Singapore"},"fe_marked_from_at":{"date":"2018-04-29 00:00:00.000000","timezone_type":3,"timezone":"Asia\/Singapore"},"fe_marked_to_at":{"date":"2018-09-21 00:00:00.000000","timezone_type":3,"timezone":"Asia\/Singapore"},"created_by":1,"updated_by":1,"id":2}';
    
    $arr = json_decode($json, true);
    
    function echoArray($arr) {
        foreach($arr as $key=>$value){
            echo $key . "<br>";
            if (is_array($value)) {
                echoArray($value);
            } else {
                echo $value . "<br>";
            }
        }
    }
    
    echoArr($arr);
    

    【讨论】:

      【解决方案3】:

      试试看:

       $arr['year'];
       $arr['month'];
      

      你不需要使用 foreach。

      【讨论】:

        猜你喜欢
        • 2021-01-20
        • 2021-02-14
        • 2015-03-17
        • 1970-01-01
        • 2018-06-22
        • 2014-09-14
        • 1970-01-01
        • 1970-01-01
        • 2017-12-28
        相关资源
        最近更新 更多