[英]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>";
}
}
}
結果:
可能是什么原因?
不確定如何獲得您說的輸出,但是重復是由於循環了第二個數組中每個項目的每個項目-因此每個選項都在那里兩次。
此版本使用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.