与之前的问题有什么区别?
在其他问题中,两个JSON数据的数量相等。这个 问题不等于JSON文件。
我有两个JSON数据。其中之一仅包含2个值。另一个包含六个值。我试图与IF ELSE区别开来,但是每个值都写了两个。 与第一个JSON中的数字一致,我想分隔第二个JSON数据。
例如:
3 -> val3
5-> val5
第一个JSON:
{"0":"3","1":"5"}
第二个JSON:
{"val1":"ValueOne","val2":"ValueSecond","val3":"ValueThree","val4":"4","val5":"ValueFive","val6":"ValueSix"}
$first = json_decode($jsonFile1);
$second = json_decode($jsonFile2);
foreach ($first as $key => $firstvalue) {
foreach ($second as $secondvalue) {
if (substr($firstvalue, -1) == $secondvalue) { <-- 'valX' => 1
echo "<strong>". $firstvalue . "</strong><br>";
} else {
echo "<em>". $firstvalue . "</em>";
}
}
}
结果:
可能是什么原因?
答案 0 :(得分:0)
不确定如何获得输出,但是重复是由于循环了第二个数组中每个项目的每个项目-因此每个选项在那里出现了两次。
此版本使用in_array()
来查看密钥的最后一个字符是否在第二个JSON列表中(请注意,它使用true
作为{的第二个参数,被转换为数组而不是对象{1}})...
json_decode()
给予...
ValueOne
ValueSecond
ValueThree
4
ValueFive
ValueSix