php 多组数字如何计算所有的组合形式。如:
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了php 多组数字如何计算所有的组合形式。如:相关的知识,希望对你有一定的参考价值。
第一组:1,2
第二组:5,6
第三组:9,10
最后计算出所有的组合:
1,5,9;
1,5,10;
2,5,9;
2,5,10;
1,6,9;
1,6,10;
2,6,9;
2,6,10;
$B = ['M','L','XL'];
$C = ['轻','重'];
// 先将各属性值处理成一个整体
$list['A'] = $A;
$list['B'] = $B;
$list['C'] = $C;
$res = array();
foreach ($list as $k => $v)
$res = getCombinationToString($v);
/**
* 获取组合的结果
* [@author](https://my.oschina.net/arthor) 18y
*/
function getCombinationToString($val)
// 保存上一个的值
static $res = array();
if(empty($res))
$res = $val;
else
// 临时数组保存结合的结果
$list = array();
foreach ($res as $k => $v)
foreach ($val as $key => $value)
$list[$k.'_'.$key] = $v.'_'.$value;
$res = $list;
return $res;
详情看全文吧,这里写有点乱 php 多组数组算所有的组合形式
参考技术A $arr1=array(1,2);$arr2=array(5,6);
$arr3=array(9,10);
for($i=0;$i<count($arr1);++$i)
for($j=0;$j<count($arr2);++$j)
for($k=0;$k<count($arr3);++$k)
echo $arr1[$i].",".$arr2[$j].",".$arr3[$k]."<br/>";
追问
如果不确定是多少组数据怎么办?
追答递归
追问能列个算法吗?拜谢!
能列个算法吗?拜谢!
本回答被提问者和网友采纳如何过滤掉某些组合?
我正在尝试使用Regex过滤TextBox的输入。我需要在小数点前最多3个数字,然后我需要2个数字。这可以是任何形式。
我已经尝试更改正则表达式命令,但它会产生错误,单个输入将无效。我在WPF中使用TextBox来收集数据。
bool containsLetter = Regex.IsMatch(units.Text, "^[0-9]{1,3}([.] [0-9] {1,3})?$");
if (containsLetter == true)
{
MessageBox.Show("error");
}
return containsLetter;
我希望正则表达式过滤器接受这些类型的输入:
111.11,
11.11,
1.11,
1.01,
100,
10,
1,
答案
正如在注释中提到的那样,空格是将在您的正则表达式模式中按字面解释的字符。
因此,在你的正则表达式的这一部分:
([.] [0-9] {1,3})
- 预计
.
和[0-9]
之间的空间, - 在
[0-9]
之后,正则表达式将1
与3
空间相匹配。
这就是说,出于可读性目的,您可以通过多种方式构建正则表达式。
1)将评论从正则表达式中删除:
string myregex = @"s" // Match any whitespace once
+ @"
" // Match one newline character
+ @"[a-zA-Z]"; // Match any letter
2)使用语法(?#comment)
在正则表达式中添加注释
needle(?# this will find a needle)
3)在你的正则表达式中激活自由间隔模式:
nee # this will find a nee... dle # ...dle (the split means nothing when white-space is ignored)
以上是关于php 多组数字如何计算所有的组合形式。如:的主要内容,如果未能解决你的问题,请参考以下文章
用PHP写一个接口,随机生成6位数字,然后以短信的形式发送到对应的手机号上。从来没写过接口不知道如何写