Maneira de obter todos os caracteres alfabéticos em uma matriz em PHP?

176

Existe uma maneira de obter todos os caracteres alfabéticos (AZ) em uma matriz no PHP para que eu possa percorrer e exibi-los?

Click Voto a favor
fonte

Respostas:

484
$alphas = range('A', 'Z');
PEZ
fonte
21
Eu amo essa resposta. Obrigado por me apresentar a função range()!
Theodore R. Smith
Isso não parece funcionar com caracteres Unicode. Mas é bom caso contrário. Não sei se se pudesse converter caracteres para números inteiros e, em seguida, o oposto para ultrapassar este problema ...
NoOne
3
Esse é um problema diferente do que o OP perguntou. Vale a pena a sua própria pergunta, IMO.
PEZ 26/01
62

Para obter maiúsculas e minúsculas, mesclar os dois intervalos:

$alphas = array_merge(range('A', 'Z'), range('a', 'z'));
PEZ
fonte
2
Também array_combine(range('A', 'Z'), range('a', 'z'))funciona
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
fonte
20
funny but usable
Click Upvote
Bom quando você pensa que range () é lento.
Minimihi
13

Outra maneira:

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

O PHP já forneceu uma função para esses aplicativos.
chr(x)retorna o caractere ascii com índice inteiro de x.
Em alguns casos, essa abordagem deve ser mais intuitiva.
Consulte 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
fonte
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
fonte
Você pode apenas fazer $ array [] = chr ($ i) para acrescentar um elemento
Tom Haigh
Isso é essencialmente o que rangefaz, mas essa é uma maneira mais ampla de fazer isso.
Ross Ross
Você pode estar usando JavaScript há algum tempo porque Array () realmente deve ser array (). Ou, em JS, [] :)
alex
4

para AZ, mas se você quiser ir de A a DU, por exemplo:

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

sua resposta será semelhante a:

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
fonte
3

Se você precisar de uma matriz que possua chaves alfabéticas e elementos (para uma lista suspensa alfabética, por exemplo), faça o seguinte:

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

Rendimentos:

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
fonte
2
$array = range('a', 'z');
Benlumley
fonte
1

Talvez seja um pouco offtopic (o iniciador de tópicos pediu a solução apenas para AZ), mas a solução de caracteres cirrílicos é:

// 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
fonte
1

Todas as boas respostas, caso alguém esteja procurando uma matriz de alfabetos em maiúsculas e minúsculas, aqui está:

$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
fonte
1
também pode serarray_merge(range('A', 'Z'), range('a', 'z'))
khandaniel 15/01
Eu gosto desta resposta, porque posso adicionar letras do nosso alfabeto a essa matriz
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
fonte
1
Você pode fornecer uma explicação com sua resposta?
precisa
Isso lista todas as duas combinações de letras, por quê?
Davorin
0

Tente o seguinte:

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
fonte
-1

Letras minúsculas

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

Letras maiúsculas

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