下面是JSON代码。
{
"Artikelnr":"1000",
"Vooraad_NL":2.0,
"Voorraad_DE":1.0,
"Voorraad_BE":0.0
}
当我用foreach循环json时,它循环了4次。我怎样才能使它只通过文章的数量循环。Like 1 article循环一次。当有3篇文章在json循环中出现3次时。
使用以下PHP代码:
$data = json_decode(file_get_contents('php://input'), true);
if ((isset($data) && $data != "") && (json_last_error() === JSON_ERROR_NONE)) {
foreach ($data as $key => $val) {
$articlenumber = $data['Artikelnr'];
$voorraad_nl = $data['Vooraad_NL'];
$voorraad_de = $data['Vooraad_DE'];
$voorraad_be = $data['Vooraad_BE'];
}
}
2条答案
按热度按时间dba5bblo1#
您有以下
json
所以,当你在
json_decode
之后循环它时,你会得到这样的结果:所以,当你循环$data时:
循环迭代
$data
数组,其中包含4个元素,并且您在循环中没有使用$key/$val
,而是使用$data
本身,因此您会看到相同的元素4次。如果你只有一个
json
,那么你不需要循环,你可以简单地做同样的事情而不需要循环,例如:如果你不确定结果是一个对象数组还是一个对象,你可以尝试这样做:
如果你想把每一个元素作为一个数组使用,那么你可以使用
(array)
转换对象(stdClass),例如:对于单个对象也可以是相同的,例如:
7nbnzgx92#
我建议有条件地将遇到的任何对象转换为objectArray,并无条件地编写一个循环来重新编译objectArray。
所有应用程序都应该奋进稳定其输入/输出数据类型,以实现更精简的脚本(遗憾的是,您所访问的端点没有考虑到这一点)。
代码:(Demo)