例: 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;}