需求
最少的时间复杂度判断$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";
}

  

最新文章

  1. 安装配置LDAP遇到的问题
  2. IE8利用setCapture和releaseCapture解决iframe的拖拽事件
  3. USACO八皇后
  4. JSON字符串转JavaBean,net.sf.ezmorph.bean.MorphDynaBean cannot be cast to ……
  5. Excel Interior.ColorIndex色彩列表
  6. UE4 性能优化方法(工具篇)
  7. Jenkins integration for AngularJS code coverage
  8. Ubuntu安装与初始配置
  9. 在Flex中定义移动设备应用程序和启动屏幕
  10. jquery treeTable插件使用细则
  11. this web application instance has been stopped already.
  12. 【SAP HANA】新建表以及操作数据(3)
  13. .Net Core 实践 - 如何在控制台应用(.Net Core)使用appsettings.json配置
  14. php判断是不是手机端访问
  15. AUTEL MaxiSYS Pro MS908P Diagnostic System with WiFi Update Online
  16. ts文件编译后变量在vscode里报错
  17. spring mvc的工作原理
  18. centos7.2环境编译安装mysql5.5.48
  19. vue 中router.go、router.push和router.replace的区别
  20. 8个很实用的在线工具来提高你的Web设计和开发能力

热门文章

  1. 利用按钮来控制不同activity页面的移动
  2. Oracle序列和伪表
  3. Python源码分析之dis
  4. postgraphile 基本试用
  5. Java移位运算符 “
  6. eclipse中点不出来提示
  7. 949. Largest Time for Given Digits
  8. FastAdmin 的 url 有一个 ref=addtabs 是怎么添加的?
  9. CentOS7 RPM安装 rabbitmqDownloads on Bintray
  10. bzoj 5006(洛谷 4547) [THUWC2017]Bipartite 随机二分图——期望DP