怎么用php筛选出一组数字组合的可能性?比如有1-10共10个数字,两两一组如何排列出所有的组合

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了怎么用php筛选出一组数字组合的可能性?比如有1-10共10个数字,两两一组如何排列出所有的组合相关的知识,希望对你有一定的参考价值。

参考技术A

按照你的要求编写的10取2的数字组合的php程序如下

<?php

function combination($arr,$m)

 $result=array();

 if($m==1)

  return $arr;

 

 if($m==count($arr))

  $result[]=implode(',',$arr);

  return $result;

 

 $temp_firstelement=$arr[0];

 unset($arr[0]);

 $arr = array_values($arr);

 $temp_first1 = combination($arr,$m-1);

 foreach($temp_first1 as $s)

  $s = $temp_firstelement.','.$s;

  $result[] = $s;

 

 unset($temp_first1);

 $temp_first2 = combination($arr,$m);

 foreach($temp_first2 as $s)

  $result[] = $s;

 

 unset($temp_first2);

 return $result;

$arr = range(1, 10);

$result = combination($arr,2);//10个数取2个的组合

print_r($result);

?>

C#的问题,怎么在List集合中筛选数据?

有一个List的泛型集合,里面已经有数据了,现在我想要按一些条件查询出筛选出里面的数据,查询的条件可能不止一条,可能有多条,该怎么做才能筛选出我要的数据?

方法一:Linq

ChannelList就是一个List类型的数据,IsOpen是其元素的属性

channelCount=(fromchannelinDevicesManager.Instance.CurrentDevice.ChannelList

wherechannel.IsOpen

groupchannelbychannel.ChannelID).Count();

方法二:泛型委托Predicate<T>

publicdelegateboolPredicate<inT>(

Tobj

方法三、

///<summary>

///筛选运送方式

///</summary>

///<paramname="list">运送方式集合</param>

///<paramname="strType">运送方式</param>

///<returns></returns>

privateList<FeeRuleDto>selectList(List<FeeRuleDto>list,stringstrType)

returnlist.FindAll(delegate(FeeRuleDtoinfo){

if(info.DeliveryType.ToString()==strType)

returntrue;

else{

returnfalse;

});

方法四、

使用List<T>获取数据库表的时候,每次用户操作都重新访问数据库,然后返回List<T>,会严重影响程序运行效率的方式,其实List<T>自带有筛选的方法,把想要的数据筛选到另一个List<T>中,不用重新访问数据库,直接筛选后绑定控件显示即可。

示例如下:

publicNumberModelcurrentmark;

publicMainFrmmainFrm;

privateList<GoodsModel>goodslist;

privateList<GoodsKindModel>goodskindlist;

privatevoidlstgoodkind_SelectedIndexChanged(objectsender,EventArgse)

try

if(lstgoodkind.SelectedValue.ToString()!="XY.Model.GoodsKindModel")

stringid=lstgoodkind.SelectedValue.ToString();

stringkname=lstgoodkind.Text;

if(kname!="全部")

List<GoodsModel>glist=goodslist.FindAll(delegate(GoodsModelp){returnp.GoodsKind==kname;});

bindgoods(dgvgoods,glist);

else

bindgoods(dgvgoods,goodslist);

catch(Exceptionex)

MessageBox.Show(ex.Message);

privatevoidbtnAdd_Click(objectsender,EventArgse)

try

stringgid=dgvgoods.Rows[dgvgoo

例如:跳过List前50条,然后取100条,可写为:

iclist_temp、iclist都为List类型

iclist_temp = iclist.Skip(50).Take(100).ToList();

取前100条,可以写为:

iclist_temp = iclist.Take(100).ToList();

ds.SelectedRows[0].Index].Cells["goodsid"].Value.ToString();

GoodsModelgoods=goodslist.Find(delegate(GoodsModelp){returnp.ID==gid;});

XY.BLL.ConsumeBll.Add(goods,currentmark,mainFrm.user);

catch(Exceptionex)

MessageBox.Show(ex.Message);

参考技术A

LINQ

比如说

        List<String> list = new List<String>();
        var q = from String s in list
                where s[0] = "A" && s.Length = 4 //字符串是以A开头,并且长度为4位的
                select s;

q在就是你要的结果

本回答被提问者和网友采纳
参考技术B

LINQ搞起

List.Where(info=>info.Sex=="男").Where(info=>info.Age>20)

多条件就对个Where

参考技术C

首先new一个新的List集合,然后用for循环,逐条读取现有的List集合中的数据,筛选出符合条件数据添加到新建的List集合中即可。

如: 

List<object> newlist = new List<object>;
for(i=0;i<oldList.Length;i++)

 
  if(oldList[i]符合条件)
   
        newlist.add(oldList[i]);
   

参考技术D 通过linq:
List<String> list = new List<String>();
var q = from String s in list
where s[0] = "A" && s.Length = 4 //字符串是以A开头,并且长度为4位的
select s;

以上是关于怎么用php筛选出一组数字组合的可能性?比如有1-10共10个数字,两两一组如何排列出所有的组合的主要内容,如果未能解决你的问题,请参考以下文章

想筛选出excel表格A表与B表内姓名与身份证号码相同的数据,那个啥函数不会用

linq怎么选出重复数据中较大的一个

求一个数组的数字有几种组合方式,6个数相加等于100.用PHP写的程式

C#的问题,怎么在List集合中筛选数据?

C#的问题,怎么在List集合中筛选数据?

excel表中,怎样筛选出多个条件的数据