Jak uzyskać wszystkie znaki alfabetu w tablicy w PHP?

176

Czy istnieje sposób na pobranie wszystkich znaków alfabetu (AZ) w tablicy w PHP, abym mógł je zapętlić i wyświetlić?

Kliknij opcję Głos za
źródło

Odpowiedzi:

484
$alphas = range('A', 'Z');
PEZ
źródło
21
Uwielbiam tę odpowiedź. Dziękuję za wprowadzenie mnie do range()funciton!
Theodore R. Smith
Wydaje się, że nie działa to ze znakami Unicode. Ale inaczej jest dobrze. Nie wiem, czy można zamienić znaki na liczby całkowite, a potem odwrotnie, aby ominąć ten problem ...
NoOne
3
To inny problem niż pytał OP. Warto zadać własne pytanie, IMO.
PEZ
62

Aby uzyskać wielkie i małe litery, połącz oba zakresy:

$alphas = array_merge(range('A', 'Z'), range('a', 'z'));
PEZ
źródło
2
array_combine(range('A', 'Z'), range('a', 'z'))Działa też
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
źródło
20
zabawne, ale użyteczne
Kliknij „Za głosuj”
Dobrze, gdy myślisz, że range () jest za wolny.
Minimihi,
13

Inny sposób:

$c = 'A';
$chars = array($c);
while ($c < 'Z') $chars[] = ++$c;
Gumbo
źródło
9

PHP już udostępnił funkcję dla takich aplikacji.
chr(x)zwraca znak ascii z indeksem całkowitoliczbowym x.
W niektórych przypadkach takie podejście powinno okazać się najbardziej intuicyjne.
Zobacz 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
źródło
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
źródło
Możesz po prostu zrobić $ array [] = chr ($ i), aby dołączyć element
Tom Haigh,
Zasadniczo to rangedziała, ale jest to szerszy sposób na zrobienie tego.
Ross
Być może od jakiegoś czasu używasz JavaScript, ponieważ Array () naprawdę powinno być array (). Albo w JS [] :)
alex
4

zakres dla AZ, ale jeśli chcesz przejść na przykład z A do DU, to:

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

Twoja odpowiedź będzie wyglądać następująco:

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 ) 
Cholery dziecko
źródło
3

Jeśli potrzebujesz tablicy zawierającej klucze alfabetyczne oraz elementy (na przykład alfabetyczną listę rozwijaną), możesz to zrobić:

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

Plony:

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
źródło
2
$array = range('a', 'z');
benlumley
źródło
1

Może jest to trochę offtopic (rozwiązanie w temacie zadane tylko dla AZ), ale dla cyrrylowego rozwiązania postaci jest:

// 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
źródło
1

Wszystkie dobre odpowiedzi, na wypadek, gdyby ktoś szukał tablicy małych i dużych liter alfabetu, oto jest:

$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
źródło
1
może być teżarray_merge(range('A', 'Z'), range('a', 'z'))
khandaniel
Podoba mi się ta odpowiedź, ponieważ mogę dodać litery naszego alfabetu do tej tablicy
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
źródło
1
Czy możesz wyjaśnić swoją odpowiedź?
Alex Wiese
To zawiera wszystkie dwuliterowe kombinacje, dlaczego?
Davorin
0

Spróbuj tego :

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
źródło
-1

Małe litery

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

Wielkie litery

for ($x = 65; $x < 90; $x++) {
    $y = chr($x);
    echo $y;
    echo "<br>";
}
Raja vikrant Sharma
źródło