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?

Réponses:


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

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

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

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;

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

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

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 ) 

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


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

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

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;

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

-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>";
}
En utilisant notre site, vous reconnaissez avoir lu et compris notre politique liée aux cookies et notre politique de confidentialité.
Licensed under cc by-sa 3.0 with attribution required.