如何编写PHP以从中获取数据。如何从关联数组中获取数据
{"room":[{"single_room":1,"twin_room":3}]}{"total_amount":[{"amount":20899}]}{"travelernum":[{"total":1}]}
我试过这样
$BookingDetail["room"]["single_room"];
但导致了这样的
非法串偏移 '房间'
和
非法字符串偏移量'single_room'
如何解决它。
如何编写PHP以从中获取数据。如何从关联数组中获取数据
{"room":[{"single_room":1,"twin_room":3}]}{"total_amount":[{"amount":20899}]}{"travelernum":[{"total":1}]}
我试过这样
$BookingDetail["room"]["single_room"];
但导致了这样的
非法串偏移 '房间'
和
非法字符串偏移量'single_room'
如何解决它。
尝试......你需要的JSON解码,你会得到一个PHP对象,然后就可以访问每一个元素..
<?php
$str = '{"room":[{"single_room":1,"twin_room":3}]}{"total_amount":[{"amount":20899}]}{"travelernum":[{"total":1}]}';
$json = json_decode($str);
echo "<pre>";
print_r($json);
echo "</pre>";
echo $json->room->single_room;
顺便说一句,我想你的JSON是无效的。您可以在http://jsonlint.com/
它不会工作,因为那些3 json的连接 –
不是一个有效的JSON,将无法正常工作。它是3 json编码数据的组合 –
中查看此字符串您使用的字符串看起来像JSON,但它不检出为有效。见JSONLint.com ...编辑它,使之有效(单线)...
{"room": [{"single_room": 1, "twin_room": 3}], "total_amount": [{"amount": 20899}], "travelernum": [{"total": 1 }]}
OR(多线)...
{
"room": [{
"single_room": 1,
"twin_room": 3
}],
"total_amount": [{
"amount": 20899
}],
"travelernum": [{
"total": 1
}]
}
如果是这种格式的所有字符串在,您可以通过使用操纵他们为有效的JSON先......
$original_string = '{"room":[{"single_room":1,"twin_room":3}]}{"total_amount":[{"amount":20899}]}{"travelernum":[{"total":1}]}';
$new_string = str_replace("}{", ",", $original_string); // replace }{ with ,
一旦你的字符串是有效的JSON格式,转换成PHP数组,因为很简单,使用这样的事情...
$BookingDetail = json_decode($new_string, true); //true param gets assoc array
我测试的所有代码的上方和它works.See PHP json_decode()函数为参考更详细地对转换JSON字符串PHP阵列。
http://php.net/manual/en/function.json-decode.php
这不是一个数组。 – AbraCadaver
json_decode()和var_dump($ var) – Roy
这些是3 json的连接,你如何获得这些?你有不同的变量吗? –