现在的位置: 首页 > 架构设计 > 正文

怎样判断php一个数组是另一个数组的子集

2020年05月26日 架构设计 ⁄ 共 1213字 ⁄ 字号 评论关闭

  今天完成一个算法的过程中,有几个需求模块,其中就有判断$a数组是否是$b数组的子集,可能最近我写c比较多,直接就用for循环实现了,但是感觉代码量比较大。下面学步园小编来讲解下怎样判断php一个数组是另一个数组的子集?

  怎样判断php一个数组是另一个数组的子集

  最少的时间复杂度判断$a数组是否是$b数组的子集

  [php]

  //快速的判断$a数组是否是$b数组的子集

  $a=array(135,138);

  $b=array(135,138,137);

  //快速的判断$a数组是否是$b数组的子集

  $a=array(135,138);

  $b=array(135,138,137);

  实现方法

  这里介绍三种方法,思路其实是相同的,差别在于实现的代码上

  for循环遍历

  [php]

  $flag=1;

  foreach($aas$va){

  if(in_array($va,$b)){

  continue;

  }else{

  $flag=0;

  break;

  }

  }

  if($flag){

  echo"Yes";

  }else{

  echo"No";

  }

  $flag=1;

  foreach($aas$va){

  if(in_array($va,$b)){

  continue;

  }else{

  $flag=0;

  break;

  }

  }

  if($flag){

  echo"Yes";

  }else{

  echo"No";

  }

  怎样判断php一个数组是另一个数组的子集

  array_diff的使用

  代码

  [php]

  $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";

  }

  array_intersect的使用

  代码

  [php]

  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";

  }

  以上就是关于“怎样判断php一个数组是另一个数组的子集”的内容,希望对大家有用。更多资讯请关注学步园。学步园,您学习IT技术的优质平台!

抱歉!评论已关闭.