ein Array mit n-Werten, zum Beispiel Gegeben:Ermittelt die Länge des Anfangssegment passende Maske auf Arrays
$arr[] = 'ABCDEFABC';
$arr[] = 'ABCDEFDEF';
$arr[] = 'ABCDEFGHI';
$arr[] = 'ABCDEFJKL';
wie kann ich das Anfangssegment finden, die alle Spiele (oder die meisten, im Beispiel unten) Werte, in diesem Fall ABCDEF?
EDIT 2: NICHT Gelöst, SIEHE ANTWORT.
Schlimmer noch, angesichts der folgenden Reihe:
$arr[] = 'ABCDEFABC';
$arr[] = 'ABCDEFDEF';
$arr[] = 'ABCDEFGHI';
$arr[] = 'ABCDEFJKL';
$arr[] = 'DEFABCABC';
$arr[] = 'DEFABCDEF';
$arr[] = 'DEFABCGHI';
$arr[] = 'DEFABCJKL';
wie kann ich:
$result[] = 'ABCDEF';
$result[] = 'DEFABC';
Dieser ist heikel ... Was ich versuche ist das Verhalten von strspn zu erreichen() (wo die Reihenfolge der "Maske" zählt, danke Zed) für Arrays angewendet.
BEARBEITEN: Um etwas aufzuklären, was ich will, ist die Suche nach allen gewöhnlichen Buchstaben, die im selben Index in allen Werten des Arrays existieren (nicht sicher, ob dies das Problem leichter gemacht hat oder nicht!). Da bei diesem zweiten Problem alle Zeichen nicht mit dem Index in den anderen Werten übereinstimmen, muss die maximale Anzahl identischer Anfangssegmente (in diesem Fall 2: ABCDEF und DEFABC) übereinstimmen.
strspn() ist nicht das, was Sie suchen. strspn ("ABC", "CBA") = 3. – Zed
Ja, du hast Recht ... Hier ist die Reihenfolge der Maske wichtig. Aber was ist wichtig, dass Sie den Punkt verstanden haben. –