两个 JSON 数据合并和 ECHO 与 PHP

与之前的问题有什么不同?


在其他问题中,两个 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>";

    } 

  }

}

结果:

  • 价值一

  • 价值一

  • 价值第二

  • 价值第二

  • 价值三

  • 价值三

  • 价值四

  • 价值四

  • 价值五

  • 价值五

  • 价值六

  • 价值六

可能是什么原因?


达令说
浏览 150回答 1
1回答

红颜莎娜

不确定如何获得您所说的输出,但重复是由于为第二个数组中的每个项目循环每个项目 - 因此每个选项在那里两次。此版本用于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) {&nbsp; &nbsp; if (in_array(substr($key, -1),$second)) {&nbsp; &nbsp; &nbsp; &nbsp; echo "<strong>". $firstvalue . "</strong><br>";&nbsp; &nbsp; } else {&nbsp; &nbsp; &nbsp; &nbsp; echo "<em>". $firstvalue . "</em><br>";&nbsp; &nbsp; }}给...ValueOneValueSecondValueThree4ValueFiveValueSix
打开App,查看更多内容
随时随地看视频慕课网APP