簡體   English   中英

兩種JSON數據合並和PHP ECHO

[英]Two JSON data merging and ECHO with 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>";
    } 
  }
}

結果:


  • ValueOne
  • ValueOne
  • 價值第二
  • 價值第二
  • 價值三
  • 價值三
  • 價值四
  • 價值四
  • 價值五
  • 價值五
  • 價值六
  • 價值六

可能是什么原因?

不確定如何獲得您說的輸出,但是重復是由於循環了第二個數組中每個項目的每個項目-因此每個選項都在那里兩次。

此版本使用in_array()來查看鍵的最后一個字符是否在第二個JSON列表中(請注意,此鍵將轉換為數組,而不是使用true作為json_decode()的第二個參數的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
價值第二
價值三
4
價值五
價值六

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM