php - 如何检查数组的元素是否存在于另一个数组数组中
问题描述
$result = array();
$A= Array
(
[0] => Array
(
[id] => 1946
[name] => cook
[pic] => cookpic.png
)
)
$B = Array
(
[0] => Array
(
[id] => 1944
[name] => driver
[pic] => driver.png
)
[1] => Array
(
[id] => 934
[name] => developer
[pic] => developer.jpg
)
[2] => Array
(
[id] => 1946
[name] => cook
[pic] => cookpic.png
)
)
我试过的:
$result = !empty(array_intersect($a, $b));
我有两个数组,我用来var_dump
展示它们并且可以在上面看到它们。
我想要实现的是,我想比较两个职业并想要$result
独一无二的数组。现在,如果 Cook 不存在于 $B 中,那么 Cook 应该被推送到$B
数组中,这将变成$result
else 它不应该被推送。
解决方案
做$result = !empty(array_intersect($a, $b));
只会告诉你$a
和之间是否有共同的元素$b
$result = array();
$a = array(
array(
"id" => 1946,
"name" => "Cook", // upper case C
"pic" => "cookpic.png"
),
array(
"id" => 1946,
"name" => "cook", // lower case c
"pic" => "cookpic.png"
)
);
$b = array(
array(
"id" => 1944,
"name" => "driver",
"pic" => "driver.png"
),
array(
"id" => 934,
"name" => "developer",
"pic" => "developer.png"
),
array(
"id" => 1946,
"name" => "cook", // lower case c
"pic" => "cookpic.png"
)
);
foreach ($a as $k => $v) {
if (in_array($v, $b) == false) {
array_push($result, $v);
}
}
print_r($result);
您可以使用array_diff但它不适用于多维数组。所以你必须从头开始
编辑:
$result = array();
$a = array(
array(
"id" => 1946,
"name" => "Cook", // upper case C
"pic" => "cookpic.png"
),
array(
"id" => 1946,
"name" => "cook", // lower case c
"pic" => "cookpic.png"
)
);
$b = array(
array(
"id" => 1944,
"name" => "driver",
"pic" => "driver.png"
),
array(
"id" => 934,
"name" => "developer",
"pic" => "developer.png"
),
array(
"id" => 1946,
"name" => "cook", // lower case c
"pic" => "cookpic.png"
)
);
$m = array_merge($a, $b);
$result = array_map("unserialize", array_unique(array_map("serialize", $m)));
print_r($result);
合并两个数组,然后使用 array_map 应用 array_unique 删除重复项
推荐阅读
- jakarta-ee - 当 RuntimeException 在另一个 bean 中抛出时,JTA 不回滚事务?
- swift - Multiline UILabel:使用 boundingRect() 为标签的特定部分添加自定义下划线
- google-chrome-extension - 一次性开发者注册费问题
- javascript - 是否可以在导出的模块中使用 Vuex mapActions
- node.js - Firebase 不会停止发送消息
- python - 在python数据框中的每一列的最大值之前找到一个值的索引
- python - 使用 GPU 多处理了解 openAI gym 和 Optuna 超参数调优
- firebase - 无法使用谷歌云功能模拟器部署功能
- arrays - 使用内部数组和另一个数组过滤对象数组
- php - 如何使用 FFmpeg 合并两个音频文件