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?

Antworten:


481
$alphas = range('A', 'Z');

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'));

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');

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;

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); 

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
...

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 ) 

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


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

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');

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;

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')));

-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>";
}
Durch die Nutzung unserer Website bestätigen Sie, dass Sie unsere Cookie-Richtlinie und Datenschutzrichtlinie gelesen und verstanden haben.
Licensed under cc by-sa 3.0 with attribution required.