Comment obtenir tous les caractères alphabétiques dans un tableau en PHP?

176

Existe-t-il un moyen d'obtenir tous les caractères alphabétiques (AZ) dans un tableau en PHP afin que je puisse les parcourir en boucle et les afficher?

Cliquez sur Upvote
la source

Réponses:

484
$alphas = range('A', 'Z');
PEZ
la source
21
J'adore cette réponse. Merci de m'avoir présenté le range()funciton!
Theodore R. Smith
Cela ne semble pas fonctionner avec les caractères Unicode. Mais c'est bien sinon. Je ne sais pas si on pourrait convertir des caractères en nombres entiers et puis le contraire pour contourner ce problème ...
NoOne
3
C'est un problème différent de celui sur lequel le PO a demandé. Cela vaut sa propre question, l'OMI.
PEZ
62

Pour obtenir à la fois les majuscules et les minuscules, fusionnez les deux plages:

$alphas = array_merge(range('A', 'Z'), range('a', 'z'));
PEZ
la source
2
Aussi array_combine(range('A', 'Z'), range('a', 'z'))fonctionne
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
la source
20
drôle mais utilisable
Cliquez sur Upvote le
Bon quand on pense que range () est trop lent.
Minimihi
13

Autrement:

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

PHP a déjà fourni une fonction pour de telles applications.
chr(x)renvoie le caractère ascii avec un index entier de x.
Dans certains cas, cette approche devrait s'avérer la plus intuitive.
Consultez 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
la source
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
la source
Vous pouvez simplement faire $ array [] = chr ($ i) pour ajouter un élément
Tom Haigh
C'est essentiellement ce que rangefait, mais c'est une façon plus large de le faire.
Ross
Vous avez peut-être utilisé JavaScript un certain temps car Array () devrait vraiment être array (). Ou, dans JS, [] :)
alex
4

plage pour AZ mais si vous voulez passer par exemple de A à DU alors:

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

votre réponse ressemblera à:

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 ) 
L'enfer bébé
la source
3

Si vous avez besoin d'un tableau contenant des clés alphabétiques ainsi que des éléments (pour une liste déroulante alphabétique, par exemple), vous pouvez le faire:

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

Rendements:

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

C'est peut-être un peu hors-sujet (le sujet a demandé une solution pour AZ uniquement), mais pour les caractères cyrriliques, la solution est:

// 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
la source
1

Toutes les bonnes réponses, au cas où quelqu'un chercherait un tableau d'alphabets minuscules et majuscules, la voici:

$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
la source
1
ça peut être aussiarray_merge(range('A', 'Z'), range('a', 'z'))
khandaniel
J'aime cette réponse, car je peux ajouter des lettres de notre alphabet à ce tableau
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
la source
1
Pouvez-vous expliquer votre réponse?
Alex Wiese
Cela répertorie toutes les combinaisons de deux lettres, pourquoi?
Davorin
0

Essaye ça :

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
la source
-1

Minuscules

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

Lettres capitales

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