Có cách nào để có được tất cả các ký tự chữ cái (AZ) trong một mảng trong PHP để tôi có thể lặp qua chúng và hiển thị chúng không?
Có cách nào để có được tất cả các ký tự chữ cái (AZ) trong một mảng trong PHP để tôi có thể lặp qua chúng và hiển thị chúng không?
Câu trả lời:
$alphas = range('A', 'Z');
$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');
Cách khác:
$c = 'A';
$chars = array($c);
while ($c < 'Z') $chars[] = ++$c;
PHP đã cung cấp một chức năng cho các ứng dụng như vậy.
chr(x)
trả về ký tự ascii với chỉ số nguyên là x.
Trong một số trường hợp, cách tiếp cận này sẽ chứng minh trực quan nhất.
Tham khảo 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
...
range
làm nhưng đây là một cách rộng hơn để làm điều đó.
phạm vi cho AZ nhưng nếu bạn muốn đi ví dụ từ A đến DU thì:
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);
câu trả lời của bạn sẽ giống như:
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 )
Nếu bạn cần một mảng có các khóa chữ cái cũng như các phần tử (ví dụ như danh sách thả xuống theo bảng chữ cái), bạn có thể làm điều này:
$alphas = array_combine(range('A','Z'),range('A','Z'))
Sản lượng:
array (size=26)
'A' => string 'A' (length=1)
'B' => string 'B' (length=1)
'C' => string 'C' (length=1)
'D' => string 'D' (length=1)
...etc
Có thể đó là một chút không chính đáng (chủ đề bắt đầu giải pháp chỉ yêu cầu AZ), nhưng đối với giải pháp nhân vật cyrrilic là:
// 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ất cả các câu trả lời tốt, trong trường hợp ai đó đang tìm kiếm một loạt các bảng chữ cái viết thường và in hoa, đây là:
$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;
Thử cái này :
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')));
Chữ viết thường
for ($x = 97; $x < 122; $x++) {
$y = chr($x);
echo $y;
echo "<br>";
}
Chữ viết hoa
for ($x = 65; $x < 90; $x++) {
$y = chr($x);
echo $y;
echo "<br>";
}
range()
funciton!