PHP код:
<?php
$nums=Array(
19589073,
11306657,
16150100,
2515407,
24919724,
23897603,
8524608,
);
$numtype=Array(1=>'x',2=>'xy',3=>'xyz',4=>'xyza',5=>'xyzab',6=>'xyzabc',7=>'xyzabcd',8=>'xyzabcde',9=>'xyzabcdef',10=>'xyzabcdefg');
foreach($nums as $num)
{
$used=Array();
for($i=0,$num=$num.'',$cnt=strlen($num);$i<$cnt;$i++)
if(!in_array($num{$i},$used))
$used[]=$num{$i};
print 'NUM: '.$num.' - '.$numtype[count($used)].'<br>';
}
?>
Код:
NUM: 19589073 - xyzabcd
NUM: 11306657 - xyzabc
NUM: 16150100 - xyza
NUM: 2515407 - xyzabc
NUM: 24919724 - xyzab
NUM: 23897603 - xyzabcd
NUM: 8524608 - xyzabc
А вот с возможностью выбора нужных:
PHP код:
<?php
$nums=Array(
19589073,
11306657,
16150100,
2515407,
24919724,
23897603,
8524608,
);
$numtype=Array(1=>'x',2=>'xy',3=>'xyz',4=>'xyza',5=>'xyzab',6=>'xyzabc',7=>'xyzabcd',8=>'xyzabcde',9=>'xyzabcdef',10=>'xyzabcdefg');
$mintype=1; //выбираем все от x
$maxtype=4; //до xyza
foreach($nums as $num)
{
$used=Array();
for($i=0,$num=$num.'',$cnt=strlen($num);$i<$cnt;$i++)
if(!in_array($num{$i},$used))
$used[]=$num{$i};
if(($tp=count($used))>=$mintype && $tp<=$maxtype) print 'NUM: '.$num.' - '.$numtype[$tp].'<br>';
}
?>
Выведет только один подходящий по критериям:
Код:
NUM: 16150100 - xyza
|