我有一个像这样的json:
[{"a":"1", "b":"2"},{"a":"4", "b":"5"},{"a":"15", "b":"2"}]
我希望每行都有php来更新我的数据库。我不知道第二级json的数量是多少。有时会是1,有时是2,有时甚至更多。
我想,我能读到这样的事情:
$json = file_get_contents('php://input');
$json_post = json_decode($json, true);
$i = 0;
while(isset($json_post[$i])){
//Bla bla
$i++;
}
我在php中使用了很多次json文件,但总是只有一个级别。这是我第一次不止一次。 但我不能。我知道,因为我检查过,在$ json中我有完整的json文件。
答案 0 :(得分:4)
您需要引用数组中的子键:
$json = file_get_contents('php://input');
$json_post = json_decode($json, true);
$i = 0;
while(isset($json_post[$i])){
echo $json_post[$i]["a"];
// or
echo $json_post[$i][0];
$i++;
}
可在此处找到更多文档:http://php.net/manual/en/language.types.array.php
这里有一个类似的问题:PHP reference specific key and value within multidimensional array
答案 1 :(得分:1)
我会使用foreach:
foreach($json_post as $key => $value) {
echo $value;
}
答案 2 :(得分:1)
$j = '[{"a":"1", "b":"2"},{"a":"4", "b":"5"},{"a":"15", "b":"2"}]';
$decoded = json_decode($j, true);
//var_dump($decoded);
foreach ($decoded as $key => $post) {
$valueOfA = $post['a'];
$valueOfB = $post['b'];
}