Hier noch eine Lösung, die die Zahlen zum ermitteln der Teilgleichehit auch als Zahlen ansieht und nicht als String. Bedingung ist, dass die Zahlen in einem Array stehen. Zahlen in ein Array zu packen sollte nicht das Problem sein. Zur Formatierung wird die Zahl allerdings wieder als String genutzt:
Bei großen Datenmengen, ist die Regex-Variante von Sven vermutlich schneller.
Gruß hpvw
PHP:
<pre>
<?
$aln=array(
170958590,
170958689,
170958789);
$max=max($aln);
$nCount=ceil(log10($max));
$matchingDigits=0;
$isMatch=true;
do {
$mn=floor($max/pow(10,$nCount-$matchingDigits));
$thisMatch=true;
foreach($aln as $n) {
$tmp = floor($n/pow(10,$nCount-$matchingDigits));
$thisMatch = $thisMatch && ($mn==$tmp);
}
$isMatch = $isMatch && $thisMatch;
} while ($isMatch && ++$matchingDigits<=$nCount);
$matchingDigits--;
foreach($aln as $n) {
$s = str_pad ( $n, $nCount, ' ', STR_PAD_LEFT);
$eq = subStr ($s,0,$matchingDigits);
$ne = subStr ($s,$matchingDigits);
echo "<b>".$eq."</b>".$ne."\n";
}
?>
</pre>
Gruß hpvw