suma - recorrer un array multidimensional php
¿Cómo obtener todos los caracteres alfabéticos en una matriz en PHP? (12)
¿Hay alguna manera de obtener todos los caracteres alfabéticos (AZ) en una matriz en PHP para que pueda recorrerlos y mostrarlos?
De otra manera:
$c = ''A'';
$chars = array($c);
while ($c < ''Z'') $chars[] = ++$c;
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>";
}
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 ser 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);
Para obtener mayúsculas y minúsculas, combine los dos rangos:
$alphas = array_merge(range(''A'', ''Z''), range(''a'', ''z''));
Si necesita una matriz que tenga claves 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
Tal vez es un poco oftópico (la solución del tema comento solo para AZ), pero para la solución de caracteres 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
rango para AZ, pero si quiere 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);
tu 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 )
$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'');
$alphabets = range(''A'', ''Z'');
$doubleAlphabets = array();
$count = 0;
foreach($alphabets as $key => $alphabet)
{
$count++;
$letter = $alphabet;
while ($letter <= ''Z'')
{
$doubleAlphabets[] = $letter;
++$letter;
}
}
return $doubleAlphabets;
$alphas = range(''A'', ''Z'');
$array = range(''a'', ''z'');
<?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
...