¿Cómo obtener todos los caracteres alfabéticos en una matriz en PHP?


176

¿Hay alguna manera de obtener todos los caracteres alfabéticos (AZ) en una matriz en PHP para que pueda recorrerlos y mostrarlos?

Respuestas:


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

21
Me encanta esta respuesta ¡Gracias por presentarme la range()función!
Theodore R. Smith

Esto no parece funcionar con caracteres Unicode. Pero es bueno lo contrario. No sé si uno podría convertir caracteres en enteros y luego lo contrario para evitar este problema ...
NoOne

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

62

Para obtener mayúsculas y minúsculas, combine los dos rangos:

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

2
También array_combine(range('A', 'Z'), range('a', 'z'))funciona
hakiko


13

De otra manera:

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

9

PHP ya ha proporcionado una función para tales aplicaciones.
chr(x)devuelve el carácter ascii con un índice entero de x.
En algunos casos, este enfoque debería resultar más intuitivo.
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
...

Simplemente puede hacer $ array [] = chr ($ i) para agregar un elemento
Tom Haigh

Eso es esencialmente lo que rangehace, pero esta es una forma más amplia de hacerlo.
Ross

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

4

rango para AZ, pero si desea ir, por ejemplo, de A a DU, entonces:

 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 se verá así:

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 teclas alfabéticas y elementos (para una lista desplegable alfabética, por ejemplo), puede hacer esto:

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

Rendimientos:

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

Tal vez sea un poco tópico (la solución de inicio de tema solicitó solo para AZ), pero para la solución de caracteres cirílicos 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

Todas buenas respuestas, en caso de que alguien esté buscando una serie de alfabetos en mayúsculas y minúsculas, aquí 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
también puede serarray_merge(range('A', 'Z'), range('a', 'z'))
khandaniel

Me gusta esta respuesta, porque puedo agregar letras de nuestro alfabeto a esa 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
¿Puedes dar alguna explicación con tu respuesta?
Alex Wiese

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

0

Prueba esto :

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 minusculas

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

Letras mayúsculas

for ($x = 65; $x < 90; $x++) {
    $y = chr($x);
    echo $y;
    echo "<br>";
}
Al usar nuestro sitio, usted reconoce que ha leído y comprende nuestra Política de Cookies y Política de Privacidad.
Licensed under cc by-sa 3.0 with attribution required.