我有两个阵列。
数组1:
Array
(
[0] => Array
(
[employee_id] => 1
)
[1] => Array
(
[employee_id] => 2
)
)
数组2:
Array
(
[0] => Array
(
[employee_id] => 2
)
)
我想要的是,如果存在Array 1
值存在于Array 2中,则取消设置Array 1
在数组1的上述示例中,应该取消设置employee_id = 2
的数组。因为它存在于数组2中
和结果我会像
Array
(
[0] => Array
(
[employee_id] => 1
)
)
答案 0 :(得分:1)
使用此解决方案,您可以获得存储在$arr1
和$arr2
中的所有值,但是如果它们仅存在于$arr1
中。
$arr1 = array(
array('employee_id' => 1),
array('employee_id' => 3),
array('employee_id' => 2),
);
$arr2 = array(
array('employee_id' => 1),
array('employee_id' => 2),
array('employee_id' => 4),
);
$arr1 = array_intersect($arr1, $arr2);
print_r($arr1);
输出
Array
(
[0] => Array
(
[employee_id] => 1
)
[1] => Array
(
[employee_id] => 3
)
[2] => Array
(
[employee_id] => 2
)
)
答案 1 :(得分:0)
试试这个:( $ arr1只保留$ arr2里面的东西)
$arr1 = array(
array(
'employee_id' => 1
),
array(
'employee_id' => 2
)
);
$arr2 = array(
array(
'employee_id' => 2
)
);
for($i = 0; $i < count($arr2); $i++) {
$employee_id = $arr2[$i]['employee_id'];
for($j = 0; $j < count($arr1); $j++) {
if($arr1[$j]['employee_id'] == $employee_id) {
unset($arr1[$j]);
break;
}
}
}
var_dump($arr1); // outputs: array(1) { [0]=> array(1) { ["employee_id"]=> int(1) } }