Cách để có được tất cả các ký tự chữ cái trong một mảng trong PHP?


176

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:


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

21
Tôi thích câu trả lời này. Cảm ơn bạn đã giới thiệu tôi với range()funciton!
Theodore R. Smith

Điều này dường như không hoạt động với các ký tự Unicode. Nhưng nó tốt. Tôi không biết liệu người ta có thể chuyển đổi các ký tự thành số nguyên hay không và ngược lại để bỏ qua vấn đề này ...
NoOne

3
Đó là một vấn đề khác với OP đã hỏi. Đó là giá trị câu hỏi của riêng mình, IMO.
PEZ

62

Để có được cả chữ hoa và chữ thường hợp nhất hai phạm vi:

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

2
Cũng array_combine(range('A', 'Z'), range('a', 'z'))hoạt động
hakiko

34
$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');

20
hài hước nhưng có thể sử dụng
Nhấp vào Upvote

Tốt khi bạn nghĩ rằng phạm vi () là chậm.
Minimihi 14/2/2016


9

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

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

Bạn chỉ có thể thực hiện $ mảng [] = chr ($ i) để nối thêm một phần tử
Tom Haigh

Đó thực chất là những gì rangelàm nhưng đây là một cách rộng hơn để làm điều đó.
Ross

Bạn có thể đã sử dụng JavaScript một thời gian vì Array () thực sự phải là mảng (). Hoặc, trong JS, [] :)
alex

4

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 ) 

3

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


1

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

1

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

1
nó cũng có thểarray_merge(range('A', 'Z'), range('a', 'z'))
khandaniel

Tôi thích câu trả lời này, vì tôi có thể thêm các chữ cái trong bảng chữ cái của chúng tôi vào mảng đó
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
Bạn có thể cung cấp một số lời giải thích với câu trả lời của bạn?
Alex Wiese

Điều này liệt kê tất cả hai kết hợp chữ cái, tại sao?
Davorin

0

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

-1

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>";
}
Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.