所以下面是我在PHP中解码它时的JSON结构,但由于某种原因,我很难循环遍历这个JSON对象。我不知道如何获得"事件","描述","技术"的每个值。从那些数组中保存它们在我的数据库中。
array(1) {
["Access"]=>
array(2) {
[0]=>
array(3) {
["incident"]=>
string(19) "sssssssssssssssssss"
["description"]=>
string(10) "ssssssssss"
["technique"]=>
string(19) "Link "
}
[1]=>
array(3) {
["incident"]=>
string(18) "ssssssssssssssssss"
["description"]=>
string(0) ""
["technique"]=>
string(19) "Link "
}
}
}
到目前为止,我有这个PHP代码,但它在第一个foreach循环中返回了一个错误,指出了无效的参数。
$objectFirst =($_POST['Access1']);
$data = json_decode($objectFirst,true);
foreach ($data->Access as $tech){
foreach($tech as $incident){
foreach($incident as $ss){
var_dump($ss->incident);
}
}
}
答案 0 :(得分:2)
使用此表示法$data->Access
访问元素时,表示您尝试访问$data
对象的属性。但在您的情况下,$data
是一个数组,因此您必须使用数组表示法。
因此应将其更正为$data['Access']
。代码中的另一个问题是循环级别。
foreach ($data->Access as $tech){
foreach($tech as $incident){
foreach($incident as $ss){
var_dump($ss->incident);
}
}
}
最内层循环不正确,因为$ incident将包含一个字符串,而不是一个数组。当您尝试访问$ss['incident']
时,它将失败。所以只需将其更改为:
foreach ($data['Access'] as $tech){
foreach($tech as $incident){
var_dump($incident);
}
}
希望它有所帮助!
答案 1 :(得分:1)
<?php
$data = [
'access' =>
[
[
'foo' => 'I',
'bar' => 'got'
],
[
'foo' => 'a',
'bar' => 'big'
]
]
];
foreach($data['access'] as $array)
var_dump($array['foo'], $array['bar']);
输出:
string(1) "I"
string(3) "got"
string(1) "a"
string(3) "big"