2009-01-10 18 views

Respuesta

393
$alphas = range('A', 'Z'); 
+13

Me encanta esta respuesta. ¡Gracias por presentarme al funciton 'range()'! –

+0

Esto no parece funcionar con caracteres Unicode. Pero es bueno de lo contrario. No sé si se pueden convertir los caracteres en enteros y luego lo contrario para eludir este problema ... – NoOne

+1

Ese es un problema diferente del que le preguntó OP. Vale la pena su propia pregunta, OMI. – PEZ

25
$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'); 
+14

divertido pero utilizable –

+0

Bueno cuando crees que el rango() es lento. – Minimihi

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

Puede hacer $ array [] = chr ($ i) para agregar un elemento –

+0

Eso es esencialmente lo que 'range' hace, pero esta es una forma más amplia de hacerlo. – Ross

+0

Puede que haya estado usando JavaScript por un tiempo porque Array() debería ser realmente array(). O bien, en JS, [] :) – alex

55

Para obtener tanto mayúsculas y minúsculas fusionar las dos gamas:

$alphas = array_merge(range('A', 'Z'), range('a', 'z')); 
+2

También 'array_combine (rango ('A', 'Z'), rango ('a', 'z'))' funciona – hakiko

11

Otra forma:

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

oh php .................. –

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

¿Puede darnos alguna explicación con su respuesta? –

+0

Esto enumera todas las combinaciones de dos letras, ¿por qué? – Davorin

8

PHP ya ha proporcionado una función para tales aplicaciones.
chr(x) devuelve el carácter ascii con índice entero de x.
En algunos casos, este enfoque debería resultar más intuitivo.
Consulte http://www.asciitable.com/ gama

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

para AZ pero si quieres ir, por ejemplo, de la A a DU continuación:

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

su respuesta será parecida:

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 necesita una matriz que tenga claves alfabéticas, así como elementos (para una lista desplegable alfabética, por ejemplo), puede hacer esto:

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

Rendimiento:

array (size=26) 
    'A' => string 'A' (length=1) 
    'B' => string 'B' (length=1) 
    'C' => string 'C' (length=1) 
    'D' => string 'D' (length=1) 
    ...etc 
0

tal vez es un offtopic poco (del Tema solución pidió AZ solamente), pero para Soltion carácter cyrrilic es:

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

letras minúsculas

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

Upper Case Letters

for ($x = 65; $x < 90; $x++) { 
    $y = chr($x); 
    echo $y; 
    echo "<br>"; 
} 
Cuestiones relacionadas