php 数组的几个小算法

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了php 数组的几个小算法相关的知识,希望对你有一定的参考价值。

1. 判断a数组是否为b数组的子集

1 <?php
2     $a = array(‘apple‘,‘orange‘);
3     $b = array(‘apple‘,‘banana‘,‘ornage‘);
4     
5     $arr = array_diff($a,$b);
6     if($arr){ echo ‘no‘}else {echo ‘yes‘}

在数组比较大,占用巨量内存时,这样比较不合适,可以用下面的

 1 <?php
 2 do{
 3     foreach ($a as $aItem){
 4          if(in_array($aItem,$b)){
 5               continue;
 6           } else{
 7                $flag  = false;break;
 8          }
 9     }
10 }while(0);

2. 输出一个数组的所有子集

 1 $a=array(1,2,3);
 2 $n = count ($a);
 3 $nn = pow(2,$n);
 4 for($i=0;$i<$nn;$i++){
 5   $m=sprintf(‘%0‘.$n.‘b‘,$i);
 6   for($j=0;$j<$n;$j++){
 7     if($m{$j}==0) $tmp[]=$a[$j];
 8   }
 9   $arr[] = ‘[‘.implode(‘,‘,$tmp).‘]‘;
10 }
11 var_dump($arr);

 

太晚了,就写这俩吧.

 

以上是关于php 数组的几个小算法的主要内容,如果未能解决你的问题,请参考以下文章

关于JavaScript算法的几个小练习--DonyZ

关于数组的几个小题目-冒泡排序二分查找直接选择排序反转数组

[C#.NET 拾遗补漏]02:数组的几个小知识

javascript的几个小技巧

PHP产生不重复随机数的5个方法总结

Python的几个小程序,其实我觉得可以称作初学时的基础算法