Hi Rolf,
Danke nochmal für Deine Funktion!
Eine kleine Ergänzung noch für die Nachwelt:
Hier die Fassung für Umlaute und Co.:
alt: try_at_position($pos+strlen($teil), $partChain, $zielLänge, $index, $chains);
neu: try_at_position($pos+mb_strlen($teil), $partChain, $zielLänge, $index, $chains);
function try_at_position($pos, &$partChain, $zielLänge, $index, &$chains)
{
if ($pos == $zielLänge)
{
$chains[] = implode("|", $partChain);
return;
}
if (!isset($index[$pos]))
return;
foreach ($index[$pos] as $teil)
{
array_push($partChain, $teil);
try_at_position($pos+mb_strlen($teil), $partChain, $zielLänge, $index, $chains);
array_pop($partChain);
}
}