PHP에서 배열의 모든 알파벳 문자를 얻는 방법은 무엇입니까?


176

PHP에서 배열의 모든 알파벳 문자 (AZ)를 가져 와서 반복하여 표시 할 수있는 방법이 있습니까?

답변:


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

21
나는이 답변을 좋아한다. 기능에 대해 소개해 주셔서 감사합니다 range()!
Theodore R. Smith

유니 코드 문자로는 작동하지 않는 것 같습니다. 그러나 그렇지 않으면 좋습니다. 문자를 정수로 변환 한 다음이 문제를 우회하기 위해 그 반대가
될지 모르겠다

3
OP가 요청한 것과는 다른 문제입니다. 자체 질문 인 IMO의 가치가 있습니다.
PEZ

62

대문자와 소문자를 모두 얻으려면 두 범위를 병합하십시오.

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

2
또한 array_combine(range('A', 'Z'), range('a', 'z'))작동
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
재미 있지만 쓸만한
클릭 Upvote

range ()가 느리다고 생각할 때 좋습니다.
Minimihi

13

또 다른 방법:

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

9

PHP는 이미 그러한 응용 프로그램을위한 기능을 제공했습니다.
chr(x)정수 인덱스 x의 ASCII 문자를 반환합니다.
경우에 따라이 접근 방식이 가장 직관적 인 것으로 입증 될 수 있습니다. 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
...

$ array [] = chr ($ i)를 수행하여 요소를 추가 할 수 있습니다
Tom Haigh

그것이 본질적으로하는 일 range이지만 이것이 더 넓은 방법입니다.
Ross

Array ()는 실제로 array ()이어야하므로 JavaScript를 사용하고있을 수 있습니다. 또는 JS에서 [] :)
alex

4

AZ의 범위이지만 예를 들어 A에서 DU로 이동하려면 다음을 수행하십시오.

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

대답은 다음과 같습니다.

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

알파벳 키와 요소 (예 : 알파벳 드롭 다운 목록)가있는 배열이 필요한 경우 다음을 수행 할 수 있습니다.

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

수율 :

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

어쩌면 약간의 주제가 아닐 수도 있지만 (주제 스타터는 AZ 전용 솔루션을 요구했습니다), 자모 문자 해결은 다음과 같습니다.

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

누군가가 소문자 및 대문자 알파벳 배열을 찾고있는 경우를 대비하여 모든 좋은 대답은 다음과 같습니다.

$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
그것은 또한 수 있습니다array_merge(range('A', 'Z'), range('a', 'z'))
khandaniel

내가 그 배열에 우리의 알파벳의 문자를 추가 할 수 있기 때문에 나는이 대답을 좋아
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
답변에 대한 설명을 해 줄 수 있습니까?
Alex Wiese

여기에 두 글자 조합이 모두 나와 있습니다. 왜 그렇습니까?
Davorin

0

이 시도 :

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

소문자

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

대문자

for ($x = 65; $x < 90; $x++) {
    $y = chr($x);
    echo $y;
    echo "<br>";
}
당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.