Way to get all alphabetic chars in an array in PHP?
Is there a way to get all alphabetic chars (A-Z) in an array in PHP so I can loop through them and display them?
15 Answers 15
This does not seem to work with Unicode characters. But it’s good otherwise. I don’t know if one could convert characters to integers and then the opposite to bypass this problem.
To get both upper and lower case merge the two ranges:
$alphas = array_merge(range('A', 'Z'), 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 = 'A'; $chars = array($c); while ($c < 'Z') $chars[] = ++$c;
PHP has already provided a function for such applications.
chr(x) returns the ascii character with integer index of x.
In some cases, this approach should prove most intuitive.
Refer 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);
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 for A-Z but if you want to go for example from A to DU then:
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);
your answer will look like:
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 )
Please tell now that when our row column is also dynamic and each row's column number is also different-2, then how will we print?
If you need an array that has alphabetical keys as well as elements (for an alphabetical dropdown list, for example), you could do this:
$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
All good answers, in case someone is looking for an array of lower and upper case alphabets, here it is:
$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');
Maybe it's a little offtopic (topic starter asked solution for A-Z only), but for cyrrilic character soltion is:
// 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
$alphabets = range('A', 'Z'); $doubleAlphabets = array(); $count = 0; foreach($alphabets as $key => $alphabet) < $count++; $letter = $alphabet; while ($letter > return $doubleAlphabets;
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')));
To contribute, yesterday, PEZ's answer in this post, https://stackoverflow.com/a/431930/9710921 helped me to create an array to manage Excel columns for data exportations, like that:
public static function makeAlphas() : array < $alphas = $cells = range('A', 'Z'); foreach($alphas as $alpha) < foreach($alphas as $beta) < $cells[] = $alpha.$beta; >> return $cells; > // Output // array:702 ["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" "AA", "AB", "AC", "AD", "AE", "AF", "AG", "AH", "AI", "AJ", "AK", "AL", "AM", "AN", "AO", "AP", "AQ", "AR", "AS", "AT", "AU", "AV", "AW", "AX", "AY", "AZ", "BA", "BB", "BC", "BD", "BE", "BF", "BG", "BH", "BI", "BJ", "BK", "BL", "BM", "BN", "BO", "BP", "BQ", "BR", "BS", "BT", "BU", "BV", "BW", "BX", "BY", "BZ", "CA", "CB", "CC", "CD", "CE", "CF", "CG", "CH", "CI", "CJ", "CK", "CL", "CM", "CN", "CO", "CP", "CQ", "CR", "CS", "CT", "CU", "CV", "CW", "CX", "CY", "CZ", "DA", "DB", "DC", "DD", "DE", "DF", "DG", "DH", "DI", "DJ", "DK", "DL", "DM", "DN", "DO", "DP", "DQ", "DR", "DS", "DT", "DU", "DV", "DW", "DX", "DY", "DZ", "EA", "EB", "EC", "ED", "EE", "EF", "EG", "EH", "EI", "EJ", "EK", "EL", "EM", "EN", "EO", "EP", "EQ", "ER", "ES", "ET", "EU", "EV", "EW", "EX", "EY", "EZ", "FA", "FB", "FC", "FD", "FE", "FF", "FG", "FH", "FI", "FJ", "FK", "FL", "FM", "FN", "FO", "FP", "FQ", "FR", "FS", "FT", "FU", "FV", "FW", "FX", "FY", "FZ", "GA", "GB", "GC", "GD", "GE", "GF", "GG", "GH", "GI", "GJ", "GK", "GL", "GM", "GN", "GO", "GP", "GQ", "GR", "GS", "GT", "GU", "GV", "GW", "GX", "GY", "GZ", "HA", "HB", "HC", "HD", "HE", "HF", "HG", "HH", "HI", "HJ", "HK", "HL", "HM", "HN", "HO", "HP", "HQ", "HR", "HS", "HT", "HU", "HV", "HW", "HX", "HY", "HZ", "IA", "IB", "IC", "ID", "IE", "IF", "IG", "IH", "II", "IJ", "IK", "IL", "IM", "IN", "IO", "IP", "IQ", "IR", "IS", "IT", "IU", "IV", "IW", "IX", "IY", "IZ", "JA", "JB", "JC", "JD", "JE", "JF", "JG", "JH", "JI", "JJ", "JK", "JL", "JM", "JN", "JO", "JP", "JQ", "JR", "JS", "JT", "JU", "JV", "JW", "JX", "JY", "JZ", "KA", "KB", "KC", "KD", "KE", "KF", "KG", "KH", "KI", "KJ", "KK", "KL", "KM", "KN", "KO", "KP", "KQ", "KR", "KS", "KT", "KU", "KV", "KW", "KX", "KY", "KZ", "LA", "LB", "LC", "LD", "LE", "LF", "LG", "LH", "LI", "LJ", "LK", "LL", "LM", "LN", "LO", "LP", "LQ", "LR", "LS", "LT", "LU", "LV", "LW", "LX", "LY", "LZ", "MA", "MB", "MC", "MD", "ME", "MF", "MG", "MH", "MI", "MJ", "MK", "ML", "MM", "MN", "MO", "MP", "MQ", "MR", "MS", "MT", "MU", "MV", "MW", "MX", "MY", "MZ", "NA", "NB", "NC", "ND", "NE", "NF", "NG", "NH", "NI", "NJ", "NK", "NL", "NM", "NN", "NO", "NP", "NQ", "NR", "NS", "NT", "NU", "NV", "NW", "NX", "NY", "NZ", "OA", "OB", "OC", "OD", "OE", "OF", "OG", "OH", "OI", "OJ", "OK", "OL", "OM", "ON", "OO", "OP", "OQ", "OR", "OS", "OT", "OU", "OV", "OW", "OX", "OY", "OZ", "PA", "PB", "PC", "PD", "PE", "PF", "PG", "PH", "PI", "PJ", "PK", "PL", "PM", "PN", "PO", "PP", "PQ", "PR", "PS", "PT", "PU", "PV", "PW", "PX", "PY", "PZ", "QA", "QB", "QC", "QD", "QE", "QF", "QG", "QH", "QI", "QJ", "QK", "QL", "QM", "QN", "QO", "QP", "QQ", "QR", "QS", "QT", "QU", "QV", "QW", "QX", "QY", "QZ", "RA", "RB", "RC", "RD", "RE", "RF", "RG", "RH", "RI", "RJ", "RK", "RL", "RM", "RN", "RO", "RP", "RQ", "RR", "RS", "RT", "RU", "RV", "RW", "RX", "RY", "RZ", "SA", "SB", "SC", "SD", "SE", "SF", "SG", "SH", "SI", "SJ", "SK", "SL", "SM", "SN", "SO", "SP", "SQ", "SR", "SS", "ST", "SU", "SV", "SW", "SX", "SY", "SZ", "TA", "TB", "TC", "TD", "TE", "TF", "TG", "TH", "TI", "TJ", "TK", "TL", "TM", "TN", "TO", "TP", "TQ", "TR", "TS", "TT", "TU", "TV", "TW", "TX", "TY", "TZ", "UA", "UB", "UC", "UD", "UE", "UF", "UG", "UH", "UI", "UJ", "UK", "UL", "UM", "UN", "UO", "UP", "UQ", "UR", "US", "UT", "UU", "UV", "UW", "UX", "UY", "UZ", "VA", "VB", "VC", "VD", "VE", "VF", "VG", "VH", "VI", "VJ", "VK", "VL", "VM", "VN", "VO", "VP", "VQ", "VR", "VS", "VT", "VU", "VV", "VW", "VX", "VY", "VZ", "WA", "WB", "WC", "WD", "WE", "WF", "WG", "WH", "WI", "WJ", "WK", "WL", "WM", "WN", "WO", "WP", "WQ", "WR", "WS", "WT", "WU", "WV", "WW", "WX", "WY", "WZ", "XA", "XB", "XC", "XD", "XE", "XF", "XG", "XH", "XI", "XJ", "XK", "XL", "XM", "XN", "XO", "XP", "XQ", "XR", "XS", "XT", "XU", "XV", "XW", "XX", "XY", "XZ", "YA", "YB", "YC", "YD", "YE", "YF", "YG", "YH", "YI", "YJ", "YK", "YL", "YM", "YN", "YO", "YP", "YQ", "YR", "YS", "YT", "YU", "YV", "YW", "YX", "YY", "YZ", "ZA", "ZB", "ZC", "ZD", "ZE", "ZF", "ZG", "ZH", "ZI", "ZJ", "ZK", "ZL", "ZM", "ZN", "ZO", "ZP", "ZQ", "ZR", "ZS", "ZT", "ZU", "ZV", "ZW", "ZX", "ZY", "ZZ",];
Алфавиты в массивах и строках
Объявленные PHP-массивы с латинским и русским алфавитом.
Русский алфавит
$array = array( 'А', 'а', 'Б', 'б', 'В', 'в', 'Г', 'г', 'Д', 'д', 'Е', 'е', 'Ё', 'ё', 'Ж', 'ж', 'З', 'з', 'И', 'и', 'Й', 'й', 'К', 'к', 'Л', 'л', 'М', 'м', 'Н', 'н', 'О', 'о', 'П', 'п', 'Р', 'р', 'С', 'с', 'Т', 'т', 'У', 'у', 'Ф', 'ф', 'Х', 'х', 'Ц', 'ц', 'Ч', 'ч', 'Ш', 'ш', 'Щ', 'щ', 'Ъ', 'ъ', 'Ы', 'ы', 'Ь', 'ь', 'Э', 'э', 'Ю', 'ю', 'Я', 'я' );
Заглавные
АБВГДЕЁЖЗИЙКЛМНОПРСТУФХЦЧШЩЪЫЬЭЮЯ
$array = array( 'А', 'Б', 'В', 'Г', 'Д', 'Е', 'Ё', 'Ж', 'З', 'И', 'Й', 'К', 'Л', 'М', 'Н', 'О', 'П', 'Р', 'С', 'Т', 'У', 'Ф', 'Х', 'Ц', 'Ч', 'Ш', 'Щ', 'Ъ', 'Ы', 'Ь', 'Э', 'Ю', 'Я' );
Строчные
абвгдеёжзийклмнопрстуфхцчшщъыьэюя
$array = array( 'а', 'б', 'в', 'г', 'д', 'е', 'ё', 'ж', 'з', 'и', 'й', 'к', 'л', 'м', 'н', 'о', 'п', 'р', 'с', 'т', 'у', 'ф', 'х', 'ц', 'ч', 'ш', 'щ', 'ъ', 'ы', 'ь', 'э', 'ю', 'я' );
Английский алфавит
$array = array( 'A', 'a', 'B', 'b', 'C', 'c', 'D', 'd', 'E', 'e', 'F', 'f', 'G', 'g', 'H', 'h', 'I', 'i', 'J', 'j', 'K', 'k', 'L', 'l', 'M', 'm', 'N', 'n', 'O', 'o', 'P', 'p', 'Q', 'q', 'R', 'r', 'S', 's', 'T', 't', 'U', 'u', 'V', 'v', 'W', 'w', 'X', 'x', 'Y', 'y', 'Z', 'z' );
Заглавные
ABCDEFGHIJKLMNOPQRSTUVWXYZ
$array = 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' );
Строчные
abcdefghijklmnopqrstuvwxyz
$array = 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 как вывести русский алфавит
Как вывести русские буквы по порядку на PHP (алфавит)
Для того чтобы вывести все русские буквы воспользуемся следующей функцией.Сначала собираем все буквы в строку, каждая буква записывается в тег со ссылкой, а затем выводим результат на экран:
'.chr($letter).''; > return $tmp; > echo printAlphabet(); ?>
Теперь вы спросите “А зачем вообще такое может понадобится?” 🙂 . Вы можете использовать вывод алфавита для дальнейшего поиска по контенту, по клику собирать либо все разделы которые начинаются с данной буквы, либо товары. Последний вариант встречается чаще.
Разберем функцию так, чтобы у вас не осталось вопросов 😉 :
printAlphabet($from = 192, $to = 223) – название функции и переданные ей 2 параметра. Через равно мы указываем значения по умолчанию, то есть значения, которые функция примет даже если вы её вызвали без параметров (это, как раз, наш случай);
$tmp = ”; – создаем переменную с пустой строкой, тем самым давая понять, что мы будем работать именно со строкой. Напомню, PHP является языком программирования с динамической типизацией;
$range = range($from, $to); – передаем в качестве параметров первое и последнее значение, а сам range – создаст нам необходимый диапазон, а точнее массив;
– в цикле foreach мы обходим каждый элемент массива, и вызываем chr – который вернет нам символ по его коду. strtolower – сделает наши символы маленькими (не люблю, знаете-ли, большие буквы в URL 🙂 );
– ну и в самом конце мы просто возвращаем эту огромную строку из HTML элементов, в данном случае ссылок, и с помощью echo выводим на экран.
Ну и пожалуй последний момент который стоит обсудить, это атрибут href, а точнее, что мы туда передаем. Как вы видите, мы передаем гет параметр search, относительно текущей страницы. Чтобы использовать этот параметр, после клика по букве из алфавита, вам всего-лишь нужно взять старый-добрый массив GET – $_GET[‘search’].
Надеюсь вам понравился подробный обзор кода и вы теперь понимаете почему делаются те или иные шаги. Спасибо за внимание, всем удачи в разработке 😉 .