Weg, um alle alphabetischen Zeichen in einem Array in PHP zu bekommen?

176

Gibt es eine Möglichkeit, alle alphabetischen Zeichen (AZ) in einem Array in PHP abzurufen, damit ich sie durchlaufen und anzeigen kann?

Klicken Sie auf Upvote
quelle

Antworten:

481
$alphas = range('A', 'Z');
PEZ
quelle
21
Ich liebe diese Antwort. Vielen Dank, dass Sie mich in die range()Funktion eingeführt haben!
Theodore R. Smith
Dies scheint mit Unicode-Zeichen nicht zu funktionieren. Aber sonst ist es gut. Ich weiß nicht, ob man Zeichen in ganze Zahlen konvertieren könnte und dann das Gegenteil, um dieses Problem zu umgehen ...
NoOne
3
Das ist ein anderes Problem als das, nach dem das OP gefragt hat. Es ist eine eigene Frage wert, IMO.
PEZ
62

Um sowohl Groß- als auch Kleinbuchstaben zu erhalten, führen Sie die beiden Bereiche zusammen:

$alphas = array_merge(range('A', 'Z'), range('a', 'z'));
PEZ
quelle
2
Auch array_combine(range('A', 'Z'), range('a', 'z'))arbeitet
hakiko
34
$alphabet = array('A','B','C','D','E','F','G','H','I','J','K','L','M','N','O','P','Q','R','S','T','U','V','W','X','Y','Z');
Nathan
quelle
20
lustig, aber brauchbar
Klicken Sie auf Upvote
Gut, wenn Sie denken, dass range () zu langsam ist.
Minimihi
13

Ein anderer Weg:

$c = 'A';
$chars = array($c);
while ($c < 'Z') $chars[] = ++$c;
Gumbo
quelle
9

PHP hat bereits eine Funktion für solche Anwendungen bereitgestellt.
chr(x)Gibt das ASCII-Zeichen mit dem Integer-Index x zurück.
In einigen Fällen sollte sich dieser Ansatz als am intuitivsten erweisen.
Siehe http://www.asciitable.com/

$UPPERCASE_LETTERS = range(chr(65),chr(90));
$LOWERCASE_LETTERS = range(chr(97),chr(122));
$NUMBERS_ZERO_THROUGH_NINE = range(chr(48),chr(57));

$ALPHA_NUMERIC_CHARS = array_merge($UPPERCASE_LETTERS, $LOWERCASE_LETTERS, $NUMBERS_ZERO_THROUGH_NINE); 
Kyle Michael Becker
quelle
4
<?php 

$array = Array();
for( $i = 65; $i < 91; $i++){
        $array[] = chr($i);
}

foreach( $array as $k => $v){
        echo "$k $v \n";
}

?>

$ php loop.php 
0 A 
1 B 
2 C 
3 D 
4 E 
5 F 
6 G 
7 H
...
Aaron Maenpaa
quelle
Sie können einfach $ array [] = chr ($ i) ausführen, um ein Element anzuhängen
Tom Haigh
Das ist im Wesentlichen das, was rangetut, aber dies ist eine breitere Art, es zu tun.
Ross
Möglicherweise haben Sie schon eine Weile JavaScript verwendet, da Array () eigentlich array () sein sollte. Oder in JS [] :)
Alex
4

Bereich für AZ, aber wenn Sie zum Beispiel von A nach DU gehen möchten, dann:

 function generateAlphabet($na) {
        $sa = "";
        while ($na >= 0) {
            $sa = chr($na % 26 + 65) . $sa;
            $na = floor($na / 26) - 1;
        }
        return $sa;
    }

    $alphabet = Array();
    for ($na = 0; $na < 125; $na++) {
        $alphabet[]=generateAlphabet($na);
    }

    print_r($alphabet);

Ihre Antwort sieht folgendermaßen aus:

Array ( [0] => A [1] => B [2] => C [3] => D [4] => E [5] => F [6] => G [7] => H [8] => I [9] => J [10] => K [11] => L [12] => M [13] => N [14] => O [15] => P [16] => Q [17] => R [18] => S [19] => T [20] => U [21] => V [22] => W [23] => X [24] => Y [25] => Z [26] => AA [27] => AB [28] => AC [29] => AD [30] => AE [31] => AF [32] => AG [33] => AH [34] => AI [35] => AJ [36] => AK [37] => AL [38] => AM [39] => AN [40] => AO [41] => AP [42] => AQ [43] => AR [44] => AS [45] => AT [46] => AU [47] => AV [48] => AW [49] => AX [50] => AY [51] => AZ [52] => BA [53] => BB [54] => BC [55] => BD [56] => BE [57] => BF [58] => BG [59] => BH [60] => BI [61] => BJ [62] => BK [63] => BL [64] => BM [65] => BN [66] => BO [67] => BP [68] => BQ [69] => BR [70] => BS [71] => BT [72] => BU [73] => BV [74] => BW [75] => BX [76] => BY [77] => BZ [78] => CA [79] => CB [80] => CC [81] => CD [82] => CE [83] => CF [84] => CG [85] => CH [86] => CI [87] => CJ [88] => CK [89] => CL [90] => CM [91] => CN [92] => CO [93] => CP [94] => CQ [95] => CR [96] => CS [97] => CT [98] => CU [99] => CV [100] => CW [101] => CX [102] => CY [103] => CZ [104] => DA [105] => DB [106] => DC [107] => DD [108] => DE [109] => DF [110] => DG [111] => DH [112] => DI [113] => DJ [114] => DK [115] => DL [116] => DM [117] => DN [118] => DO [119] => DP [120] => DQ [121] => DR [122] => DS [123] => DT [124] => DU ) 
HellBaby
quelle
3

Wenn Sie ein Array mit alphabetischen Schlüsseln und Elementen benötigen (z. B. für eine alphabetische Dropdown-Liste), können Sie Folgendes tun:

$alphas = array_combine(range('A','Z'),range('A','Z'))

Ausbeuten:

array (size=26)
  'A' => string 'A' (length=1)
  'B' => string 'B' (length=1)
  'C' => string 'C' (length=1)
  'D' => string 'D' (length=1)
  ...etc
pbarney
quelle
2
$array = range('a', 'z');
Benlumley
quelle
1

Vielleicht ist es ein wenig offtopisch (Themenstarter fragte nur nach Lösung für AZ), aber für die Lösung von kyrrilischen Charakteren ist:

// to place letters into the array
$alphas = array();
foreach (range(chr(0xC0), chr(0xDF)) as $b) {
    $alphas[] = iconv('CP1251', 'UTF-8', $b);
}    

// or conver array into comma-separated string
$alphas = array_reduce($alphas, function($p, $n) {
  return $p . '\'' . $n . '\',';
});
$alphas = rtrim($alphas, ',');

// echo string for testing
echo $alphas;
// or echo mb_strtolower($alphas); for lowercase letters
userlond
quelle
1

Alle guten Antworten, falls jemand nach einer Reihe von Klein- und Großbuchstaben sucht, hier ist es:

$alpha = array('A','B','C','D','E','F','G','H','I','J','K','L','M','N','O','P','Q','R','S','T','U','V','W','X','Y','Z','a','b','c','d','e','f','g','h','i','j','k','l','m','n','o','p','q','r','s','t','u','v','w','x','y','z');
vikramaditya234
quelle
1
es kann auch seinarray_merge(range('A', 'Z'), range('a', 'z'))
khandaniel
Ich mag diese Antwort, weil ich diesem Array Buchstaben unseres Alphabets hinzufügen kann
kv1dr
0
$alphabets = range('A', 'Z');
    $doubleAlphabets = array();
    $count = 0;
    foreach($alphabets as $key => $alphabet)
    {
        $count++;
        $letter = $alphabet;
        while ($letter <= 'Z') 
        {
            $doubleAlphabets[] = $letter;

            ++$letter;
        }
    }

    return $doubleAlphabets;
Mohd Aidi
quelle
1
Können Sie Ihre Antwort erklären?
Alex Wiese
Hier werden alle zwei Buchstabenkombinationen aufgelistet. Warum?
Davorin
0

Versuche dies :

function missingCharacter($list) {

        // Create an array with a range from array minimum to maximu
        $newArray = range(min($list), max($list));

        // Find those elements that are present in the $newArray but not in given $list
        return array_diff($newArray, $list);
    }
print_r(missCharacter(array('a','b','d','g')));
Jagadeesha N.
quelle
-1

Kleinbuchstaben

for ($x = 97; $x < 122; $x++) {
    $y = chr($x);
    echo $y;
    echo "<br>";
}

Großbuchstaben

for ($x = 65; $x < 90; $x++) {
    $y = chr($x);
    echo $y;
    echo "<br>";
}
Raja Vikrant Sharma
quelle