我有一个充满ID的数组,这些ID将与索引较大的单独数组中的对应ID匹配。我想首先使用较小数组中的ID搜索较大数组,并消除较小数组中未出现的所有索引,然后将与我的初始较小数组匹配的数组中存在的值放入。我已经尝试了各种嵌套的for循环(接近,但无法使我到达那里),但是我似乎无法将自己笼罩在一般的数组问题上。
第一个数组看起来像这样:
Array
(
[0] => Array
(
[roleID] => 5b6468a500277c71b98405b1f140991c
[name] =>
[description] =>
[rate] =>
[hours] =>
[total] =>
)
[1] => Array
(
[roleID] => 5b6468a500277c74f6b2c065436b7d17
[name] =>
[description] =>
[rate] =>
[hours] =>
[total] =>
)
[2] => Array
(
[roleID] => 5b6468a500277c7697ba21928129e3af
[name] =>
[description] =>
[rate] =>
[hours] =>
[total] =>
)
)
第二个数组看起来像这样
Array
(
[0] => stdClass Object
(
[ID] => 5b6468a500277c71b98405b1f140991c
[name] => CED
[objCode] => ROLE
[description] => CED
)
[1] => stdClass Object
(
[ID] => 5b6468a500277c74f6b2c065436b7d17
[name] => AD
[objCode] => ROLE
[description] => AD
)
[2] => stdClass Object
(
[ID] => 5b6468a500277c7697ba21928129e3af
[name] => AMG
[objCode] => ROLE
[description] => AMG
)
[3] => stdClass Object
(
[ID] => 5b6468a500277c77071c32c0bb2bae04
[name] => AP
[objCode] => ROLE
[description] => AP
)
[4] => stdClass Object
(
[ID] => 5b6468a500277c787e9680625c74ca80
[name] => AST
[objCode] => ROLE
[description] => AST
)
[5] => stdClass Object
(
[ID] => 5b6468a500277c79c0eddb8c14cc9f83
[name] => ASV
[objCode] => ROLE
[description] => ASV
)
)
我想将第一个ID中的roleID与第二个数组中的ID匹配,然后使用'name'和'description'键并将其放在第一个数组中它所属的位置。我已经接近以下代码,但是要么一堆数组顺序错误,要么每个索引的“名称”和“描述”字段完全相同。
$projectUserRoleIDs = $client->get('project', $myProjectName, array('projectUserRoles:roleID'));
$projectUserRoleIDs = $projectUserRoleIDs->projectUserRoles;
$roleIDs = [];
for($a = 0; $a < count($projectUserRoleIDs); $a++)
{
$roleIDs[$a]['roleID'] = $projectUserRoleIDs[$a]->roleID;
// Get array of entire list of roles that are available in Workfront
// The roles:name category has all of the acronyms for each role, which can appear in an invoice
// The roles:description category has all of the full length names
$projectRoles = $client->get('project', $myProjectName, array('roles:name', 'roles:description'));
$projectRoles = $projectRoles->roles;
$roleLoop = [];
for($b = 0; $b < count($projectUserRoleIDs); $b++)
{
$roleLoop[] = $projectUserRoleIDs[$b]->roleID;
}
foreach($roleLoop as $key => $value) {
for($x = 0; $x<count($projectRoles); $x++)
{
if($projectRoles[$x]->ID === $value)
{
$name = $projectRoles[$x]->name;
$description = $projectRoles[$x]->description;
$roleIDs[$x]['name'] = $name;
$roleIDs[$x]['description'] = $description;
}
}
}
$roleIDs[$a]['rate'] = '';
$roleIDs[$a]['hours'] = '';
$roleIDs[$a]['total'] = '';
}
最后,我希望我的第一个数组看起来像这样
Array
(
[0] => Array
(
[roleID] => 5b6468a500277c71b98405b1f140991c
[name] => CED
[description] => CED
[rate] =>
[hours] =>
[total] =>
)
[1] => Array
(
[roleID] => 5b6468a500277c74f6b2c065436b7d17
[name] => AD
[description] => AD
[rate] =>
[hours] =>
[total] =>
)
以此类推...感谢您的帮助。