Способ получить все буквенные символы в массиве в PHP?

177

Есть ли способ получить все буквенные символы (AZ) в массиве в PHP, чтобы я мог просмотреть их и просмотреть их?

Нажмите Upvote
источник

Ответы:

485
$alphas = range('A', 'Z');
PEZ
источник
21
Мне нравится этот ответ. Спасибо, что познакомили меня с этой range()функцией!
Теодор Р. Смит
Это не похоже на работу с символами Юникода. Но это хорошо в противном случае. Я не знаю, можно ли преобразовать символы в целые числа, а затем наоборот, чтобы обойти эту проблему ...
NoOne
3
Это другая проблема, о которой спрашивал ОП. Это стоит своего вопроса, ИМО.
PEZ
62

Чтобы получить как верхний, так и нижний регистр, объедините два диапазона:

$alphas = array_merge(range('A', 'Z'), range('a', 'z'));
PEZ
источник
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 () медленный.
Минимихи
13

По-другому:

$c = 'A';
$chars = array($c);
while ($c < 'Z') $chars[] = ++$c;
гумбо
источник
9

PHP уже предоставил функцию для таких приложений.
chr(x)возвращает символ ascii с целочисленным индексом x.
В некоторых случаях такой подход должен оказаться наиболее интуитивным.
См. 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), чтобы добавить элемент
Том Хей
Это по сути то, что rangeделает, но это более широкий способ сделать это.
Росс
Возможно, вы некоторое время использовали JavaScript, потому что Array () действительно должен быть array (). Или, в JS, [] :)
Алекс
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
pbarney
источник
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
userlond
источник
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');
vikramaditya234
источник
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
Можете ли вы дать некоторые объяснения с вашим ответом?
Алекс Визе
Это перечисляет все две комбинации букв, почему?
Даворин
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')));
Jagadeesha N
источник
-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>";
}
Раджа Викрант Шарма
источник