首页 > 后端开发 > php教程 > 5组数字,每组取一个组成不相同的5位数,大神

5组数字,每组取一个组成不相同的5位数,大神

WBOY
发布: 2016-06-23 13:26:35
原创
1322 人浏览过

例 : 012345678,013456789,023456789,012456789,023456789
这5组数每组取一个组成不相同的5位数


回复讨论(解决方案)

$d = explode(',', '012345678,013456789,023456789,012456789,023456789');$r = array();for($i=0; $i<count($d); $i++) {  for($j=0; $j<strlen($d[$i]); $j++)    if(! in_array($d[$i]{$j}, $r)) {      $r[] = $d[$i]{$j};      break;    }}echo join(' ', $r);
登录后复制
你可能需要有随机性的
$d = explode(',', '012345678,013456789,023456789,012456789,023456789');$r = array();for($i=0; $i<count($d); $i++) {  $loop = 100;  do {    $j = rand(0, strlen($d[$i]) - 1);    if(! in_array($d[$i]{$j}, $r)) {      $r[] = $d[$i]{$j};      break;    }  }while($loop--);}echo join(' ', $r);
登录后复制

我是想把所有能组成的5位数都显示出来,我没写清楚

循环 去重呗

$d = array_map('str_split', explode(',', '012345678,013456789,023456789,012456789,023456789'));print_r(foo($d));function foo($d) {  $r = array_pop($d);  while($d) {    $t = array();    foreach(array_pop($d) as $k1=>$x) {      foreach($r as $k2=>$y) $t[] = "$x $y";    }    $r = $t;  }  return $r;}
登录后复制

来源:php.cn
本站声明
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn
热门教程
更多>
最新下载
更多>
网站特效
网站源码
网站素材
前端模板