PHP:按相同值合并两个对象数组
我有两件事: 阵列1PHP:按相同值合并两个对象数组,php,arrays,object,array-merge,Php,Arrays,Object,Array Merge,我有两件事: 阵列1 array(2) { [0]=> object(stdClass)#2 (6) { ["SteamId"]=> string(17) "76561197961360219" ["CommunityBanned"]=> bool(false) ["VACBanned"]=> bool(false) ["NumberOfVACBans"]=> int(0) ["Days
array(2) {
[0]=>
object(stdClass)#2 (6) {
["SteamId"]=>
string(17) "76561197961360219"
["CommunityBanned"]=>
bool(false)
["VACBanned"]=>
bool(false)
["NumberOfVACBans"]=>
int(0)
["DaysSinceLastBan"]=>
int(0)
["EconomyBan"]=>
string(4) "none"
}
[1]=>
object(stdClass)#3 (6) {
["SteamId"]=>
string(17) "76561198156224606"
["CommunityBanned"]=>
bool(false)
["VACBanned"]=>
bool(true)
["NumberOfVACBans"]=>
int(1)
["DaysSinceLastBan"]=>
int(1)
["EconomyBan"]=>
string(4) "none"
}
}
阵列2
array(2) {
[0]=>
object(stdClass)#5 (14) {
["steamid"]=>
string(17) "76561198156224606"
["communityvisibilitystate"]=>
int(3)
["profilestate"]=>
int(1)
["personaname"]=>
string(5) "Orion"
["lastlogoff"]=>
int(1415641010)
["commentpermission"]=>
int(1)
["profileurl"]=>
string(39) "http://steamcommunity.com/id/sv4rtberg/"
["avatar"]=>
string(114) "http://media.steampowered.com/steamcommunity/public/images/avatars/44/44780a8cb827a212dadbd0981c8834a2e1b4b7c7.jpg"
["avatarmedium"]=>
string(121) "http://media.steampowered.com/steamcommunity/public/images/avatars/44/44780a8cb827a212dadbd0981c8834a2e1b4b7c7_medium.jpg"
["avatarfull"]=>
string(119) "http://media.steampowered.com/steamcommunity/public/images/avatars/44/44780a8cb827a212dadbd0981c8834a2e1b4b7c7_full.jpg"
["personastate"]=>
int(0)
["primaryclanid"]=>
string(18) "103582791429521408"
["timecreated"]=>
int(1411813740)
["personastateflags"]=>
int(0)
}
[1]=>
object(stdClass)#6 (11) {
["steamid"]=>
string(17) "76561197961360219"
["communityvisibilitystate"]=>
int(1)
["profilestate"]=>
int(1)
["personaname"]=>
string(9) "SVARTBERG"
["lastlogoff"]=>
int(1415744339)
["commentpermission"]=>
int(2)
["profileurl"]=>
string(53) "http://steamcommunity.com/profiles/76561197961360219/"
["avatar"]=>
string(114) "http://media.steampowered.com/steamcommunity/public/images/avatars/3e/3e649cc102a9d866272394ba321a123cb5b46c34.jpg"
["avatarmedium"]=>
string(121) "http://media.steampowered.com/steamcommunity/public/images/avatars/3e/3e649cc102a9d866272394ba321a123cb5b46c34_medium.jpg"
["avatarfull"]=>
string(119) "http://media.steampowered.com/steamcommunity/public/images/avatars/3e/3e649cc102a9d866272394ba321a123cb5b46c34_full.jpg"
["personastate"]=>
int(0)
}
}
正如您所看到的,两个数组都包含具有相同值(streamid/streamid)的对象。不,我想合并这些对象数组,这样我可以得到如下结果:
array(2) {
[0]=>
object(stdClass)#5 (14) {
["steamid"]=>
string(17) "76561198156224606"
["communityvisibilitystate"]=>
int(3)
["profilestate"]=>
int(1)
["personaname"]=>
string(5) "Orion"
["lastlogoff"]=>
int(1415641010)
["commentpermission"]=>
int(1)
["profileurl"]=>
string(39) "http://steamcommunity.com/id/sv4rtberg/"
["avatar"]=>
string(114) "http://media.steampowered.com/steamcommunity/public/images/avatars/44/44780a8cb827a212dadbd0981c8834a2e1b4b7c7.jpg"
["avatarmedium"]=>
string(121) "http://media.steampowered.com/steamcommunity/public/images/avatars/44/44780a8cb827a212dadbd0981c8834a2e1b4b7c7_medium.jpg"
["avatarfull"]=>
string(119) "http://media.steampowered.com/steamcommunity/public/images/avatars/44/44780a8cb827a212dadbd0981c8834a2e1b4b7c7_full.jpg"
["personastate"]=>
int(0)
["primaryclanid"]=>
string(18) "103582791429521408"
["timecreated"]=>
int(1411813740)
["personastateflags"]=>
int(0)
["SteamId"]=>
string(17) "76561198156224606"
["CommunityBanned"]=>
bool(false)
["VACBanned"]=>
bool(true)
["NumberOfVACBans"]=>
int(1)
["DaysSinceLastBan"]=>
int(1)
["EconomyBan"]=>
string(4) "none"
}
[1]=>
object(stdClass)#6 (11) {
["steamid"]=>
string(17) "76561197961360219"
["communityvisibilitystate"]=>
int(1)
["profilestate"]=>
int(1)
["personaname"]=>
string(9) "SVARTBERG"
["lastlogoff"]=>
int(1415744339)
["commentpermission"]=>
int(2)
["profileurl"]=>
string(53) "http://steamcommunity.com/profiles/76561197961360219/"
["avatar"]=>
string(114) "http://media.steampowered.com/steamcommunity/public/images/avatars/3e/3e649cc102a9d866272394ba321a123cb5b46c34.jpg"
["avatarmedium"]=>
string(121) "http://media.steampowered.com/steamcommunity/public/images/avatars/3e/3e649cc102a9d866272394ba321a123cb5b46c34_medium.jpg"
["avatarfull"]=>
string(119) "http://media.steampowered.com/steamcommunity/public/images/avatars/3e/3e649cc102a9d866272394ba321a123cb5b46c34_full.jpg"
["personastate"]=>
int(0)
["SteamId"]=>
string(17) "76561197961360219"
["CommunityBanned"]=>
bool(false)
["VACBanned"]=>
bool(false)
["NumberOfVACBans"]=>
int(0)
["DaysSinceLastBan"]=>
int(0)
["EconomyBan"]=>
string(4) "none"
}
}
我已经在另一个foreach中想到了一个foreach,但这对我来说似乎很奇怪,也不优雅。你知道吗?我已经试过了:
$playerBans = getPlayerBans(array('76561198156224606', '76561197961360219'));
$playerSums = getPlayerSummaries(array('76561198156224606', '76561197961360219'));
//var_dump($playerBans, $playerSums);
$playerBans_inverted = array();
foreach ($playerBans as $index => &$subarray) {
$playerBans_inverted[$subarray->SteamId] = $index;
}
var_dump($playerBans_inverted);
foreach ($playerSums as &$element) {
$playerBans_element = $playerBans_inverted[$element->steamid];
//var_dump($playerBans_element);
$element->steamid = $playerBans_element['SteamId'];
$element->VACBanned = $playerBans_element['VACBanned'];
}
//var_dump($playerSums);
但这不起作用。另外,这个代码现在还不完整,因为我无法让它正常工作。差不多了,试试
$element->vacbanked=$playerBans[$playerBans\u inversed[$element->streamid]]->vacbanked
。嗯。。。我的代码现在是这样的:我得到了: