php判断一个数组是另一个数组的子集
2024-09-28 02:39:32
需求
最少的时间复杂度判断$a数组是否是$b数组的子集
// 快速的判断$a数组是否是$b数组的子集
$a = array(135,138);
$b = array(135,138,137);
实现方法
这里介绍三种方法,思路其实是相同的,差别在于实现的代码上
1.for循环遍历
$flag = 1;
foreach ($a as $va) {
if (in_array($va, $b)) {
continue;
}else {
$flag = 0;
break;
}
} if ($flag) {
echo "Yes";
}else {
echo "No";
}
$flag = 1;
foreach ($a as $va) {
if (in_array($va, $b)) {
continue;
}else {
$flag = 0;
break;
}
} if ($flag) {
echo "Yes";
}else {
echo "No";
}
2.array_diff的使用;计算数组的差集
array_diff(array1,array2,array3...);
返回值: 返回差集数组,该数组包括了所有在被比较的数组(array1)中,但是不在任何其他参数数组(array2 或 array3 等等)中的键值。
$c = array_diff($a, $b);
print_r($c);
$flag = empty($c)?1 : 0; if ($flag) {
echo "Yes";
}else {
echo "No";
}
$c = array_diff($a, $b);
print_r($c);
$flag = empty($c)?1 : 0; if ($flag) {
echo "Yes";
}else {
echo "No";
}
3.array_intersect的使用;计算数组的交集
array_intersect(array1,array2,array3...);
返回值: 返回交集数组,该数组包括了所有在被比较的数组(array1)中,同时也在任何其他参数数组(array2 或 array3 等等)中的键值。
if ($a == array_intersect($a, $b)) {
$flag = 1;
}else {
$flag = 0;
} if ($flag) {
echo "Yes";
}else {
echo "No";
}
if ($a == array_intersect($a, $b)) {
$flag = 1;
}else {
$flag = 0;
} if ($flag) {
echo "Yes";
}else {
echo "No";
}
最新文章
- 安装配置LDAP遇到的问题
- IE8利用setCapture和releaseCapture解决iframe的拖拽事件
- USACO八皇后
- JSON字符串转JavaBean,net.sf.ezmorph.bean.MorphDynaBean cannot be cast to ……
- Excel Interior.ColorIndex色彩列表
- UE4 性能优化方法(工具篇)
- Jenkins integration for AngularJS code coverage
- Ubuntu安装与初始配置
- 在Flex中定义移动设备应用程序和启动屏幕
- jquery treeTable插件使用细则
- this web application instance has been stopped already.
- 【SAP HANA】新建表以及操作数据(3)
- .Net Core 实践 - 如何在控制台应用(.Net Core)使用appsettings.json配置
- php判断是不是手机端访问
- AUTEL MaxiSYS Pro MS908P Diagnostic System with WiFi Update Online
- ts文件编译后变量在vscode里报错
- spring mvc的工作原理
- centos7.2环境编译安装mysql5.5.48
- vue 中router.go、router.push和router.replace的区别
- 8个很实用的在线工具来提高你的Web设计和开发能力
热门文章
- 利用按钮来控制不同activity页面的移动
- Oracle序列和伪表
- Python源码分析之dis
- postgraphile 基本试用
- Java移位运算符 “
- eclipse中点不出来提示
- 949. Largest Time for Given Digits
- FastAdmin 的 url 有一个 ref=addtabs 是怎么添加的?
- CentOS7 RPM安装 rabbitmqDownloads on Bintray
- bzoj 5006(洛谷 4547) [THUWC2017]Bipartite 随机二分图——期望DP