gpt4 book ai didi

php - 如何使用 php 和 mysql 排列数字而不重复

转载 作者:塔克拉玛干 更新时间:2023-11-03 05:23:02 25 4
gpt4 key购买 nike

我需要进行数字排列(具有某些功能),但是我的 .php 和 mysql 没有那么改进。这些号码将通过 .html 表格发布,最多 10 个号码。它将排列数字以创建唯一的千位数字:

如果 .html 输入 (1,2,3,4) 发布了 4 个不同的数字:将返回:1234,1243,1324,1342...(24 个独特的组合)

如果 .html 输入 (1,2,3,4,5) 发布了 5 个不同的数字:将返回:1234,1235,1243,...(120 个独特的组合)

数字只会在发布时重复,如 (1,1,2,4)将返回:1124、1142、1214,...(12 个独特的组合)

然后我需要将组合存储到一个 mysql 行中,以逗号分隔。

我试过这个功能(在这里找到 Permutations - all possible sets of numbers ):

$p = permutate(array('1','2','3'));
foreach($p as $perm)
print join("",$perm)."|\n";
function permutate($elements, $perm = array(), &$permArray = array())
{
if(empty($elements))
{
array_push($permArray,$perm); return;
}

for($i=0;$i<=count($elements)-1;$i++)
{
array_push($perm,$elements[$i]);
$tmp = $elements; array_splice($tmp,$i,1);
permutate($tmp,$perm,$permArray);
array_pop($perm);
}

return $permArray;
}

输出:123| 132| 213| 231| 312| 321|

但是什么时候给出: $p = permutate(数组('1','2','2'));

输出是:122| 122| 212| 221| 212| 221|什么时候应该是122|212|221

我尝试了 array_unique,但没有成功,可能是因为我做错了。

谢谢

最佳答案

首先将每个结果转换为字符串,然后对数组进行去重:

$p = permutate(array('1','2','3'));
$result = array();
foreach($p as $perm) {
$result[]=join("",$perm);
}
$result = array_unique($result);
print join("|", $result);

关于php - 如何使用 php 和 mysql 排列数字而不重复,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26050297/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com