PHP bir dizi tüm alfabetik karakterleri (AZ) almanın bir yolu var mı, böylece onları döngü ve onları görüntülemek?
PHP bir dizi tüm alfabetik karakterleri (AZ) almanın bir yolu var mı, böylece onları döngü ve onları görüntülemek?
Yanıtlar:
$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');
PHP bu tür uygulamalar için zaten bir işlev sağlamıştır.
chr(x)x tamsayı indeksine sahip ascii karakterini döndürür.
Bazı durumlarda, bu yaklaşım en sezgisel olmalıdır.
Bkz. 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);
<?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
...
rangeama bunu yapmanın daha geniş bir yolu budur.
AZ için menzil ancak örneğin A'dan DU'ya gitmek istiyorsanız:
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);
cevabınız şöyle görünecek:
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 )
Alfabetik tuşların yanı sıra öğeleri içeren bir diziye (örneğin, alfabetik bir açılır liste için) ihtiyacınız varsa, bunu yapabilirsiniz:
$alphas = array_combine(range('A','Z'),range('A','Z'))
Verim:
array (size=26)
'A' => string 'A' (length=1)
'B' => string 'B' (length=1)
'C' => string 'C' (length=1)
'D' => string 'D' (length=1)
...etc
Belki biraz oftopiktir (konu başlatıcı sadece AZ için çözüm istedi), ancak cyrilik karakter çözümü için:
// 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
Tüm iyi cevaplar, bir dizi küçük ve büyük harf alfabe ararken, işte burada:
$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');
array_merge(range('A', 'Z'), range('a', '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;
Bunu dene :
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')));
Küçük harfler
for ($x = 97; $x < 122; $x++) {
$y = chr($x);
echo $y;
echo "<br>";
}
Büyük harfler
for ($x = 65; $x < 90; $x++) {
$y = chr($x);
echo $y;
echo "<br>";
}
range()cennete tanıttığın için teşekkürler !