【发布时间】:2019-07-30 09:53:49
【问题描述】:
我有三个数组
- 主题已选
- 相关组
- topicAssingned
$topicsSelected = [ "T-100","T-600"];
$relavantGroups = [[ "id" => "G-001","name" => "3 A","active"=> false ], ["id"=> "G-002","name"=> "3 B","active"=> false] ];
$topicAssingned = [
"G-001" => [
"groupID" => "G-001",
"groupName" => "3 A",
"topics" => [
"T-100" => [
"topicID" => "T-100"
],
"T-200" => [
"topicID" => "T-200"
]
]
],
"G-002" => [
"groupID" => "G-002",
"groupName" => "3 B",
"topics" => [
"T-400" => [
"topicID" => "T-400"
],
"T-500" => [
"topicID" => "T-500"
]
]
],
];
$topicsSelected 数组值(T-100 或 T-600)至少一个值应存在于 $topicAssingned 数组中,基于 groupID(G-001)。 $topicAssingned 在 topics , topicID : T-100 是 present ,所以Disable : D
$topicsSelected 数组值(T-100 或 T-600)至少一个值应存在于 $topicAssingned 数组中,基于 groupID(G-002)。 $topicAssingned under topics , topicID : T-100 & T-600 is not present ,所以Disable : A
预期输出:
[
"id": "G-001",
"name": "3 A",
"active": false,
"Disable" : "D"
],
[
"id": "G-002",
"name": "3 B",
"active": false,
"Disable" : "A"
]
我的代码
foreach ($relavantGroups as &$g) {
$found = false;
foreach ($topicAssingned as $key => $assigned) {
if ($key === $g["id"]) {
$found = true;
break;
}
}
$g["disable"] = $found ? "D" : "A";
}
echo "<pre>";
print_r($relavantGroups);
我的输出
Array
(
[0] => Array
(
[id] => G-001
[name] => 3 A
[active] =>
[disable] => D
)
[1] => Array
(
[id] => G-002
[name] => 3 B
[active] =>
[disable] => D
)
)
【问题讨论】:
-
你能解释一下吗?您的第三个数组比较代码在哪里?你面临什么问题?在这里我只看到活动元素是空的并且禁用是不同的?我对吗?你能给出所有三个数组的 JSON 格式,以便我们在最后尝试吗?
标签: php arrays multidimensional-array php-5.6