Frage von Marc747, 33

PHP: Im Alphabeth hochzählen?

Hi Leute, Ich Suche einen PHP Code, der im Alphabet immer weiter "hochzählt". Also.... a b c d ...... x y z aa ab ac ad ..... ax ay az ba bb bc ..... zx zy zz aaa aab aab aac ......... zzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzz usw... Und zwar Automatisch... Mit einer schleife, welche "X"- Mal (Zahlenwert den ich in der Variable $i angebe) immer weiter "hochzählt".

Antwort
von n0b0dyelse, 14

Du kannst es mit Rekursion machen:

function countAlphabet($num,$a_c){
if($num > 0){ // Prüfe ob noch zahlen folgen
$k = count($a_c);
while($k--){ // iteriere rückwärts durch $a_c
$r = 0;
$v = $a_c[$k];
if($v === 26){ // wenn letztes element 26 ist
$a_c[$k] = 0; // ... dann setze es auf 0 zurück
if($k === 0){ // ... prüfe ob es das letzte element ist
array_push($a_c, 0); // ... ... wenn ja, dann füge neuen zähler hinzu
break;
}else {
$a_c[$k - 1]++; // ... ansonsten ... erhöhe vorigen zähler
}
}
}
$k = count($a_c)-1; // letzter schlüssel des arrays
echo implode(array_map(function($a){
$alphabet = "ABCDEFGHIJKLMNOPQRSTUVWXYZ";
return substr($alphabet,$a,1);
},$a_c)).PHP_EOL.PHP_EOL; // ausgabe
$a_c[$k]++; // erhöhe letztes element in array um 1
$num--;
countAlphabet($num,$a_c); // rekursion
}
}
echo "<pre>";
countAlphabet(1500,[0]);
Antwort
von Herb3472, 23

Am einfachsten funktioniert das wohl, indem Du das Integer-Äquivalent der Character von a = 097 bis z = 122 hochzählst. Und wenn Du bei 123 angelangt bist, wird dem String ein Character hinzugefügt und wieder bei 097 begonnen.



Kommentar von Marc747 ,

Danke, allerdings habe ich dies auch bereits probiert.

Dies löst mein Problem nämlich nicht :(

Wenn ich das mache fängt der Code nach dem "Z" wieder bei " A" an....

Allerdings möchte ich, dass es nach dem "Z" mit "AA" weitermacht.

Trotzdem Danke :)

Kommentar von Herb3472 ,

Allerdings möchte ich, dass es nach dem "Z" mit "AA" weitermacht.

Steig runter von der langen Leitung! Zusätzlich zu Deinem Buchstabenzähler benötigst Du natürlich einen String, bei dem Du immer die letzte Stelle variierst. Beginnen tust Du mit einem Leerstring "", mit jedem Durchlauf wird der String um einen Character länger, wobei immer nur der letzte Character variiert wird, bis das "Z" erreicht ist. Dann wird die vorhergehende Stelle um eins hochgezählt, und die letzte Stelle beginnt wieder bei "A".



Antwort
von LeonardM, 18

For schleife mit char..

Keine passende Antwort gefunden?

Fragen Sie die Community