【发布时间】:2017-02-24 13:34:05
【问题描述】:
数组 1:
[
{"PlayerID":"17794204","userName":"Vandiel","castleCount":"9","NotUpd":"1476253231000"},
{"PlayerID":"21532584","userName":"Mayland","castleCount":"1","NotUpd":"0"},
{"PlayerID":"21539896","userName":"Dana","castleCount":"9","NotUpd":"0"}
]
数组 2:
[
{"PlayerID":"17794204","Trouble":"2"},
{"PlayerID":"21532584","Trouble":"0"},
{"PlayerID":"21539896","Trouble":"0"}
]
这两个都是使用 fetch_assoc_all() 从 mySQL 数据库中提取的
我尝试了 merge_array、merge_array_recursive、json_decode(xx,true) 以及各种我可以通过谷歌在我的头脑和其他地方想到的东西。我正在寻找一种将array1、array2 合并为类似的方法:
[
{"PlayerID":"17794204","userName":"Vandiel","castleCount":"9","NotUpd":"1476253231000","Trouble":"2"},
{"PlayerID":"21532584","userName":"Mayland","castleCount":"1","NotUpd":"0","Trouble":"0"},
{"PlayerID":"21539896","userName":"Dana","castleCount":"9","NotUpd":"0","Trouble":"0"}
]
PlayerID 始终是唯一的。希望听到我可以做些什么来合并这两个数组(array1,array2)
(附加/编辑) 对于那些想知道 mySQL 是什么样子的人(我无法理解 JOIN 语句):
$mSQL = 'SELECT nPlayer.PlayerID,userName,castleCount,IF(LastUpdate < (UNIX_TIMESTAMP() - 3720),LastUpdate*1000,0) NotUpd';
$mSQL .= ' FROM nPlayer';
$mSQL .= ' LEFT JOIN nMains ON nMains.mID = nPlayer.mID';
$mSQL .= ' WHERE nMains.Main = "'.$M.'" AND nMains.Pass = "'.md5($P).'" AND nMains.Server = "'.$S.'"';
$mSQL .= ' ORDER BY nPlayer.PlayerID';
$mSQL = 'SELECT nCity.PlayerID,SUM(IF(Wartown > 0,1,0))+SUM(IF(support < 100,1,0))) Trouble';
$mSQL .= ' FROM nCity';
$mSQL .= ' INNER JOIN nPlayer ON nPlayer.PlayerID = nCity.PlayerID AND nPlayer.mID = nCity.mID';
$mSQL .= ' INNER JOIN nMains ON nMains.mID = nPlayer.mID';
$mSQL .= ' WHERE nMains.Main = "'.$M.'" AND nMains.Pass = "'.md5($P).'" AND nMains.Server = "'.$S.'"';
$mSQL .= ' GROUP BY nCity.PlayerID';
【问题讨论】:
-
拉取数据时最好在查询中使用MYSQL JOIN操作
-
我尝试了 mySQL JOIN,但无法解决这些问题,因为它来自 2 个不同的表,但一个查询需要 GROUP BY 而其他查询不需要。
-
在上面编辑以包含 mySQL
-
在第二个查询中,您可以尝试使用 nCity.PlayerID、nPlayer.userName、nPlayer.castleCount、.....
-
@sgkdnay。我已经提供了有关您所需输出的解释,也提供了代码。分享想法,如果您遇到任何障碍,请告诉我。