Php 如何检查给定三个数组中的条件
我有三个阵列Php 如何检查给定三个数组中的条件,php,arrays,multidimensional-array,php-5.6,Php,Arrays,Multidimensional Array,Php 5.6,我有三个阵列 选题 相关群体 主题化 $topicsSelected=[“T-100”、“T-600”]; $relaventgroups=[[“id”=>“G-001”、“name”=>“3A”、“active”=>false]、“id”=>“G-002”、“name”=>“3B”、“active”=>false]; $topicassigned=[ “G-001”=>[ “组ID”=>“G-001”, “groupName”=>“3 A”, “主题”=>[ “T-100”=>[ “topic
$topicsSelected=[“T-100”、“T-600”];
$relaventgroups=[[“id”=>“G-001”、“name”=>“3A”、“active”=>false]、“id”=>“G-002”、“name”=>“3B”、“active”=>false];
$topicassigned=[
“G-001”=>[
“组ID”=>“G-001”,
“groupName”=>“3 A”,
“主题”=>[
“T-100”=>[
“topicID”=>“T-100”
],
“T-200”=>[
“topicID”=>“T-200”
]
]
],
“G-002”=>[
“组ID”=>“G-002”,
“groupName”=>“3 B”,
“主题”=>[
“T-400”=>[
“topicID”=>“T-400”
],
“T-500”=>[
“topicID”=>“T-500”
]
]
],
];
$topicsSelected数组值(T-100或T-600)$TopicsAssigned数组中应根据groupID(G-001)至少存在一个值$主题在主题下命名,主题ID:T-100是存在的,因此禁用:D
$topicsSelected数组值(T-100或T-600)$TopicsAssigned数组中应根据groupID(G-002)至少存在一个值$主题在主题下命名,主题ID:T-100和T-600不存在,因此禁用:A
预期产出:
[
"id": "G-001",
"name": "3 A",
"active": false,
"Disable" : "D"
],
[
"id": "G-002",
"name": "3 B",
"active": false,
"Disable" : "A"
]
我的代码
你可以试试这个片段
Array
(
[0] => Array
(
[id] => G-001
[name] => 3 A
[active] =>
[disable] => D
)
[1] => Array
(
[id] => G-002
[name] => 3 B
[active] =>
[disable] => A
)
)
-计算数组的交集-返回数组的所有键或键的子集 输出
你能再解释一下吗?第三个数组比较代码在哪里?你面临的问题是什么?这里我只看到活动元素是空的,禁用是不同的?我说得对吗?你能给出所有三个数组的JSON格式吗,这样我们就可以在我们这边试试了?解释一下你做了什么,以及为什么它解决了OP的问题,这对帮助其他人理解你的解决方案总是很有用的。
Array
(
[0] => Array
(
[id] => G-001
[name] => 3 A
[active] =>
[disable] => D
)
[1] => Array
(
[id] => G-002
[name] => 3 B
[active] =>
[disable] => D
)
)
foreach ($relavantGroups as &$g) {
$found = false;
foreach ($topicAssingned as $key => $assigned) {
if ($key === $g["id"]) {
$temp = array_keys($assigned['topics']); // fetching all topic ids
$intr = array_intersect($topicsSelected, $temp); // checking if there are any matching values between topicSelected and traversed values
$found = (!empty($intr) ? true : false); // if found return and break
break;
}
}
$g["disable"] = $found ? "D" : "A";
}
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] => A
)
)