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?

Respostas:


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

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

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

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;

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

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

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 ) 

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


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

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

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;

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

-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>";
}
Ao utilizar nosso site, você reconhece que leu e compreendeu nossa Política de Cookies e nossa Política de Privacidade.
Licensed under cc by-sa 3.0 with attribution required.