我现在正在使用Laravel 5,我遇到了以下问题。我收到了DB查询的回复:
[{"id":1}]
我想把1取出为int或string。有什么想法吗?
我试图解决这个问题如下:
$json = (DB query);
$data = json_decode($json);
$final = $data[0]->id;
并且回复是:
json_decode()期望参数1为字符串,给定数组
答案 0 :(得分:1)
正如您所说,您拥有的字符串是JSON格式,因此您需要使用json_decode
在PHP中访问它。
方括号引用一个数组,大括号引用该数组中的一个对象,所以你要找的是第一个元素的id
值(即元素0
)在阵列中。
<?php
$json = '[{"id":1}]';
$data = json_decode($json);
echo $data[0]->id;
// 1
答案 1 :(得分:1)
这就是你所需要的。
$response = json_decode($response); // Decode the JSON
$string = $response[0]->id; // Save the value of id var
答案 2 :(得分:0)
试试这个
$json_array = '[{"id":1}]';
$data = json_decode($json_array);
print_r($data); // To display the result array
答案 3 :(得分:0)
如果我不误解你的问题,你只需要解码它。
$json = '[{"id":1}]';
$decodedObject = json_decode($json);
然后你可以遍历aray并对你的数据做一些事情:
foreach($decodedObject as $key => $value) {
$id = $value->id;
}
如果您正在使用Laravel,为什么不使用Eloquent模型?