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ć?

Odpowiedzi:


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

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

2
array_combine(range('A', 'Z'), range('a', 'z'))Działa też
hakiko


13

Inny sposób:

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

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

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

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 ) 

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


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

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

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;

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

-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>";
}
Korzystając z naszej strony potwierdzasz, że przeczytałeś(-aś) i rozumiesz nasze zasady używania plików cookie i zasady ochrony prywatności.
Licensed under cc by-sa 3.0 with attribution required.