我有两个阵列$ schoolteachers和$ schoolgroups ...
$ schoolgroups = Array( [0] =数组 ( [groupid] = 1 [groupname] =红色 [members] =数组 ( [0] =数组 ( [id] = 13 [姓名] = Sooraj )
[1] = Array ( [id] = 12 [name] = sanjay ) ) ) [1] => Array ( [groupid] = 2 [groupname] = Blue [members] = Array ( [0] = Array ( [id] = 9 [name] = Anith ) [1] = Array ( [id] = 4 [name] = John ) );
$ schoolteachers = Array(
[0] => Array ( [employee_id] = 7 [emp_name] = Anantha Raman ) [1] => Array ( [employee_id] => 9 [emp_name] = Anith ) [2] = Array ( [employee_id] = 11 [emp_name] = Aravind ) });
我想检查$ schoolteachers'empname',是在schoolgroup数组($ schoolgroup ['members'] [''name] = Aravind)并且只回应非成员 我希望显示基于名称的$ schoolteachers数组(如果$ schoolgroups中不存在
)我用的代码不太好
foreach ($schoolteachers as $teachers) {
$classin = false;
foreach (new RecursiveIteratorIterator(new RecursiveArrayIterator($schoolgroups)) as $value) {
if ($value == $teachers['emp_name']) {
$classin = true;
break;
}
}
if (!$classin) {
echo $teachers['emp_name'];
}
}
答案 0 :(得分:1)
你可以尝试
$names = array_map(function($v){ return $v['emp_name']; }, $schoolteachers);
$members = array();
array_walk_recursive($schoolgroups, function($item,$key) use (&$members) {
$key === "name" and $members[] = $item ;
});
echo "<pre>";
foreach($names as $name)
{
if(!in_array($name, $members))
echo $name,PHP_EOL;
}
输出
Anantha Raman
Aravind