Warning: file_get_contents(/data/phpspider/zhask/data//catemap/7/jsf/5.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Php 如何在foreach循环中回显此JSON数据?_Php_Arrays_Laravel_Foreach - Fatal编程技术网

Php 如何在foreach循环中回显此JSON数据?

Php 如何在foreach循环中回显此JSON数据?,php,arrays,laravel,foreach,Php,Arrays,Laravel,Foreach,我正在使用Laravel调用MySQL中的存储过程。我试图对返回的数据进行迭代,但似乎无法理解。我要么收到一个无效的参数foreach error,要么收到html specialchars error,在将JSON发送到视图之前我没有对其进行编码 return view('my-view.index', compact('data')); 我的数据库呼叫: $data = DB::select('CALL sp_MyClientList()'); 如果我将其返回到视图 return vie

我正在使用Laravel调用MySQL中的存储过程。我试图对返回的数据进行迭代,但似乎无法理解。我要么收到一个无效的参数foreach error,要么收到html specialchars error,在将JSON发送到视图之前我没有对其进行编码

return view('my-view.index', compact('data'));
我的数据库呼叫:

$data = DB::select('CALL sp_MyClientList()');
如果我将其返回到视图

return view('my-view.index', compact('data'));
我得到htmlspecial chars错误。嗯

因此,我使用:

$json = json_encode($data);
我收到这个JSON格式并将其发送到视图:

return view('my-view.index', compact('json'));

[  {  
"ClientID":24,
"Name":"Client1",
"Balance1":null,
"Balance2":null
},
{  
"ClientID":25,
"Name":"Client2",
"Balance1":24,
"Balance2":0
}]
如何通过foreach这个循环来获取内部的键值对

我尝试在循环上迭代两次,但没有成功

@foreach ($json as $obj)

@for each ($obj as $client)

....

@endforeach

@endforeach

该结构只有一层

@foreach($json as $v)
    {{ $v-> ClientID }} - {{ $v->Name }}
@endforeach

您可以使用json解码

foreach (json_decode($json) as $a)
{
  print_r($a); // this is your area from json response
}


在控制器中,您可以创建一个函数,用于获取数据并将其解码为如下数组:

public function retrievingData($yourVariableHere){
    $data='[  {
    "ClientID":24,
"Name":"Client1",
"Balance1":null,
"Balance2":null
},
{
    "ClientID":25,
"Name":"Client2",
"Balance1":24,
"Balance2":0
}]';

    $data=json_decode($data,true);
    return view('myViewFile',[
        'data' => $data
    ]);   
}
@foreach ($data as $row)
    Client Id: {{$row->ClientID}}<br>
    Name : {{$row->Name}}<br>
    Balance1 data: {{$row->Balance1}}<br>
    Balance2 data: {{$row->Balance2}}<br>
@endforeach
出于示例的考虑,我硬编码您的json只是为了使用您提供的数据

在您的函数中,您可以将解码后的阵列返回到刀片服务器,并可以如下方式回显您的结果:

public function retrievingData($yourVariableHere){
    $data='[  {
    "ClientID":24,
"Name":"Client1",
"Balance1":null,
"Balance2":null
},
{
    "ClientID":25,
"Name":"Client2",
"Balance1":24,
"Balance2":0
}]';

    $data=json_decode($data,true);
    return view('myViewFile',[
        'data' => $data
    ]);   
}
@foreach ($data as $row)
    Client Id: {{$row->ClientID}}<br>
    Name : {{$row->Name}}<br>
    Balance1 data: {{$row->Balance1}}<br>
    Balance2 data: {{$row->Balance2}}<br>
@endforeach
@foreach($data作为$row)
客户端Id:{{$row->ClientID}}
名称:{{$row->Name}}
余额1数据:{{$row->Balance1}}
余额2数据:{{$row->Balance2}}
@endforeach

在foreach循环中。

以防任何人需要此问题的答案。我不知道这是否正确,但它确实对我有用。我必须先对服务器返回的数据进行编码,然后解码,然后才能访问阵列

$data = DB::select('CALL sp_myproc');

$json = js_encode($data, true);
$arr = js_decode($data, true);

 return view('myview.index', compact('arr'));

@foreach ($arr as $client)

{{$client['Name'}}

@endforeach

foreach的参数无效!