两种JSON数据合并和PHP ECHO

时间:2019-05-09 17:02:42

标签: php json merge decode jsondecoder

  

与之前的问题有什么区别?

     

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

结果:


  • ValueOne
  • ValueOne
  • ValueSecond
  • ValueSecond
  • ValueThree
  • ValueThree
  • ValueFour
  • ValueFour
  • ValueFive
  • ValueFive
  • ValueSix
  • ValueSix

可能是什么原因?

1 个答案:

答案 0 :(得分:0)

不确定如何获得输出,但是重复是由于循环了第二个数组中每个项目的每个项目-因此每个选项在那里出现了两次。

此版本使用in_array()来查看密钥的最后一个字符是否在第二个JSON列表中(请注意,它使用true作为{的第二个参数,被转换为数组而不是对象{1}})...

json_decode()

给予...

ValueOne
ValueSecond
ValueThree
4
ValueFive
ValueSix