与之前的问题有什么不同?在其他问题中,两个 JSON 数据的数量相等。这个问题不等于 JSON 文件。我有两个 JSON 数据。其中之一只包含 2 个值。另一个包含六个值。我试图与 IF ELSE 区分开来,但每个值都写入了两个。与第一个 JSON 中的数字一致,我想将第二个 JSON 数据分开。例如:3 -> val35-> 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>"; } }}结果:价值一价值一价值第二价值第二价值三价值三价值四价值四价值五价值五价值六价值六可能是什么原因?
1 回答
红颜莎娜
TA贡献1842条经验 获得超12个赞
不确定如何获得您所说的输出,但重复是由于为第二个数组中的每个项目循环每个项目 - 因此每个选项在那里两次。
此版本用于in_array()查看键的最后一个字符是否在第二个 JSON 列表中(请注意,这将转换为数组而不是true用作 的第二个参数的对象json_decode())...
$jsonFile1 = '{"val1":"ValueOne","val2":"ValueSecond","val3":"ValueThree","val4":"4","val5":"ValueFive","val6":"ValueSix"}';
$jsonFile2 = '{"0":"3","1":"5"}';
$first = json_decode($jsonFile1);
$second = json_decode($jsonFile2, true);
foreach ($first as $key => $firstvalue) {
if (in_array(substr($key, -1),$second)) {
echo "<strong>". $firstvalue . "</strong><br>";
} else {
echo "<em>". $firstvalue . "</em><br>";
}
}
给...
ValueOne
ValueSecond
ValueThree
4
ValueFive
ValueSix
- 1 回答
- 0 关注
- 149 浏览
添加回答
举报
0/150
提交
取消