我在两个JSON中通过POST解码了传入的字符串,我正在尝试读取它并将密钥保存在变量中。这些是数组:
$infos = $_POST;
$orderInformation['orderInfo'] = json_decode($infos['orderinf']);
$orderItensInformation['orderItensInfo'] = json_decode($infos['orderitensinf']);
这就是var_dump返回的$orderInformation
:
array(1) {
["orderInfo"]=>
object(stdClass)#1 (9) {
["customer_fone"]=>
string(10) "5554120082"
["neighborhood"]=>
string(4) "aaaa"
["order_price"]=>
int(45)
["payment_method"]=>
string(8) "CASH"
["customer_email"]=>
string(19) "abc@def.com"
["street"]=>
string(14) "Unknown street"
["number"]=>
string(3) "111"
["order_date"]=>
object(stdClass)#2 (5) {
["day"]=>
int(3)
["month"]=>
int(11)
["time"]=>
int(1)
["year"]=>
int(2013)
["minute"]=>
int(24)
}
["customer_name"]=>
string(6) "Noname"
}
}
问题是如何获取对象内的信息? 我试图使用foreach:
foreach($orderInformation->orderInfo as $oi) {
$fone = $oi->customer_fone;
$nbh = $oi->neighborhood;
.
.
.
}
但没有奏效。变量是空的。
答案 0 :(得分:0)
除非你在这个数组中有多个订单,否则不需要循环
$orderInformation['orderInfo']
是你的对象
echo $orderInformation['orderInfo']->customer_fone;
// Should return 5554120082
对于更简洁的方法,请尝试
$x = $orderInformation['orderInfo'];
echo $x->customer_fone;
代码中的大错误。
$orderInformation->ordeInfo
不像您所称的属性那样存在。
$orderInformation['orderInfo']
答案 1 :(得分:0)
From the manual,return将是一个对象,除非你传入它的第二个参数设置为true,这将返回一个关联数组(在这种情况下可能更适合你):
$orderInformation['orderInfo'] = json_decode($infos['orderinf'], true);
$orderItensInformation['orderItensInfo'] = json_decode($infos['orderitensinf'], true);
foreach($orderInformation['orderInfo'] as $oi) {
$fone = $oi['customer_fone'];
$nbh = $oi['neighborhood'];
.
.
.
}