- Массив латинских букв php
- Результат сортировки массива по алфавиту в латинице, в php
- Сортировать массив в php — латиница, в обратную сторону.
- Результат сортировки массива по алфавиту в обратную сторону, в php
- Сортировать смешанный массив в php — латинице.
- Результат сортировки массива с прописными и строчными буквами латинице:
- Сортируем массив в php — кириллица.
- Результат сортировки массива в кириллице:
- Сортируем массив в php — кириллица, в обратную сторону.
- Результат сортировки массива в кириллице, в обратную сторону:
- Сортировать смешанный массив в php — кириллице.
- Погнали!
- Результат сортировки смешанного массива в кириллице:
- Алфавиты в массивах и строках
- Русский алфавит
- Заглавные
- Строчные
- Английский алфавит
- Заглавные
- Строчные
- Заполнить массив случайным образом символами, выделить в отдельные массивы буквы латинского алфавита
- Решение
- Алфавитный указатель на PHP
- Вывод на страницу
- CSS:
Массив латинских букв php
Для того, чтобы сортировать массив по алфавиту нам понадобится:
Мы используем «ВСЕГДА» на сайте только живые коды и примеры, поэтому, мы сможем вывести прямо здесь наш массив, который будем сортировать по алфавиту в латинице, с помощью print_r:
Array(
[0] => Tom [1] => Bob [2] => Sam [3] => Alice)
Как видим. наш массив в латинице не отсортирован по алфавиту.
Теперь применим к данному массиву функцию «sort«
Результат сортировки массива по алфавиту в латинице, в php
Как видим массив — замечательно отсортировался по алфавиту!
Array(
[0] => Alice [1] => Bob [2] => Sam [3] => Tom)
Сортировать массив в php — латиница, в обратную сторону.
Для того, чтобы отсортировать массив в латинице в обратную сторону, нам понадобится:
Возьмем тот же массив, который бы у нас в предыдущем пункте:
И применим родственную функцию предыдущей функции — rsort
И выведем опять, прямо здесь, отсортированный массив в обратную сторону в латинице:
Результат сортировки массива по алфавиту в обратную сторону, в php
Наш массив прекрасно отсортировался в алфавитном порядке, в обратную сторону.
Array(
[0] => Tom [1] => Sam [2] => Bob [3] => Alice)
Сортировать смешанный массив в php — латинице.
Что означает в данном контексте слово смешанный массив?
Смешанный массив — создадим массив, где будут и строчные и прописные буквы в латинице!
Почему бы не попробовать отсортировать такой массив в алфавитном порядке?
Для такой сортировки массива по алфавиту, нам понадобится массив, в котором будут и прописные и строчные буквы.
$array_for_sort= [«Tom», «Bob», «sam», «alice»];
Вы можете потренироваться любыми функция отсортировать такой или подобный массив, я этим не буду заниматься! Мы сразу перейдем к сортировке выше приведенного массива. Нам понадобится опять функция «sort», но с дополнительными флагами — «SORT_NATURAL | SORT_FLAG_CASE»
И выведем данную строку здесь:
Результат сортировки массива с прописными и строчными буквами латинице:
Мы видим результат сортировки массива в php? в латинице с строчными и прописными буквами!
Array(
[0] => alice [1] => Bob [2] => sam [3] => Tom)
Сортируем массив в php — кириллица.
Следующим пунктом отсортируем массив в php в кириллице!
Для того, чтобы отсортировать массив по алфавиту, нам понадобится массив в кириллице.
Создадим простой(одномерный) массив:
Применим к данному массиву функцию «sort»:
Уже несколько надоевшая функция print_r, с помощью которой выведем отсортированный массив:
Результат сортировки массива в кириллице:
Как видим. наш массив в кириллице, в php, замечательно отсортировался по алфавиту!
Array(
[0] => анкор [1] => банка [2] => вид [3] => голос [4] => фифа [5] => якорь)
Сортируем массив в php — кириллица, в обратную сторону.
Далее. отсортируем массив в кириллице в обратную сторону:
Для того, чтобы отсортировать массив по алфавиту, в обратную сторону, нам опять понадобится массив в кириллице.
Возьмем тот же массив, что был выше пунктом:
Применим к массиву функцию «rsort»:
Опять используем print_r, с помощью которой выведем отсортированный массив:
Результат сортировки массива в кириллице, в обратную сторону:
Как видим. наш массив в кириллице, в php, замечательно отсортировался по алфавиту, в обратную сторону!
Array(
[0] => якорь [1] => фифа [2] => голос [3] => вид [4] => банка [5] => анкор)
Сортировать смешанный массив в php — кириллице.
Теперь. относительно смешанного массива в php в кириллице, где встречаются и прописные и строчные буквы!
Возможно есть способ, который существует для сортировки такого массива по алфавиту, но я его не нашел! смайлы
Поэтому, приведу пример, как я бы решил эту задачку!
Поскольку — у нас есть и строчные и прописные буквы — нам следует привести буквы к единому массиву, например к строчным.
Погнали!
Чтобы отсортировать массив с прописными и строчными буквами, нам потребуется массив:
После этого. рекурсивно проходим по значениям массива и применим собственную функцию strtolower
Далее. применим уже не раз использованную функцию «sort»:
Результат сортировки смешанного массива в кириллице:
Как видим. наш массив в кириллице, в php, замечательно отсортировался по алфавиту!
Array(
[0] => анкор [1] => банка [2] => вид [3] => голос [4] => фифа [5] => якорь)
Алфавиты в массивах и строках
Объявленные 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, уже голову сломала. Всё что в интернете нашла, не то((
вот задание: Заполнить массив случайным образом произвольными символами, выделить в отдельные массивы буквы латинского алфавита, как заглавные, так и строчные. Для контроля результата сделать распечатку массивов, в том числе исходного.
Массив: Выделить в отдельные массивы заглавные гласные и заглавные согласные буквы латинского алфавита
В исходном массиве символов, заполненном случайным образом символами с кодами в диапазоне от 21 до.
Заполнить массив случайным образом буквами латинского алфавита и цифрами (арабскими)
Заполнить массив случайным образом буквами латинского алфавита и цифрами (арабскими). Отсортировать.
Заполнить два массива размером 20 и 30 элементов случайным образом буквами латинского алфавита
Задачка: Заполнить два массива размером 20 и 30 элементов случайным образом буквами латинского.
Выделить на экране зеленым цветом все буквы латинского алфавита
Нужна помощь, сам написать не в состоянии( Выделить на экране зеленым цветом все буквы латинского.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23
$array_1 = array(); $array_2 = array(); $array_3 = array(); $symbols = array('a','b','c', 'я', 'в', 'д', 'В', 'D'); // можно дополнить любыми символами которые нужны $initial_size = 20; // размер массива в символах for($i = 0; $i $initial_size; $i++) { $array_1[] = $symbols[rand(0,sizeof($symbols)-1)]; } foreach($array_1 as $symbol) { if(preg_match('/[a-z]/', $symbol)) { $array_2[] = $symbol; } if(preg_match('/[A-Z]/', $symbol)) { $array_3[] = $symbol; } } var_dump($array_1); // первоначальный массив var_dump($array_2); // латинские строчные var_dump($array_3); // латинские заглавные
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31
$n = 0; //изменить на длину массива (0 - все символы a-z A-z а-я А-Я, кроме Ё и ё) $symbols = array_merge( range('a', 'z'), range('A', 'Z') ); $range = range(chr(0xC0), chr(0xDF)); array_walk($range, function($v) use(&$symbols){ $v = iconv('CP1251', 'UTF-8', $v); $symbols[] = $v; $symbols[] = mb_strtolower($v, 'UTF-8'); }); shuffle($symbols); if($n) $symbols = array_slice($symbols, 0, $n); $small = array_filter($symbols, function($v) { return $v >= 'a' && $v 'z'; }); $big = array_filter($symbols, function($v) { return $v >= 'A' && $v 'Z'; }); var_dump( $symbols, //all letters $small, //small letters $big //big letters );
Сообщение было отмечено memch как решение
Решение
Во первых, нужно сгенерировать массив. Я так понимаю, символы должны быть из таблицы ASCII. В этом случае всё просто:
$string = []; $length = 50; for($i = 0; $i $length; $i++) { $string[] = chr(rand(32, 126));//в диапазоне от 32 до 126 в таблице находятся "видимые" символы. }
Теперь, нам нужно выделить из массива заглавные и строчные латинские буквы. Для этого нужна функция array_filter :
$upper = array_filter($string, function($ch) { return $ch >= 'a' && $ch 'z'; }); $lower = array_filter($string, function($ch) { return $ch >= 'A' && $ch 'Z'; });
echo "Random: " . implode($string) . "\nUpper: " . implode($upper) . "\nLower: " . implode($lower);
1 2 3 4 5 6 7 8 9 10 11 12 13
$string = []; $length = 50; for($i = 0; $i $length; $i++) { $string[] = chr(rand(32, 126)); } $upper = array_filter($string, function($ch) { return $ch >= 'a' && $ch 'z'; }); $lower = array_filter($string, function($ch) { return $ch >= 'A' && $ch 'Z'; }); echo "Random: " . implode($string) . "\nUpper: " . implode($upper) . "\nLower: " . implode($lower);
Vshining, Спасибо, что так подробно расписали, но почему-то ругается на третью строку в последнем куске кода. Пишет
Parse error: syntax error, unexpected ‘[‘ in Z:\home\localhost\www\lab41.php on line 9
Добавлено через 7 минут
sadn3r, спасибо большое) но как сделать вывод более красивым? не через дамп?
Добавлено через 3 минуты
KOPOJI, Спасибо большое, а не могли вы немного прокомментировать свой код? не совсем понятно(
Сообщение от memch
sadn3r, исходный массив. строчные. прописные. но только каждый массив с новой строки
Добавлено через 14 минут
Vshining, разобралась уже) спасибо большое)
echo 'исходный массив: '.join(',', $array_1)."
"; echo 'строчные: '.join(',', $array_2)."
"; echo 'прописные: '.join(',', $array_3)."
";
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38
$n = 0; //изменить на длину массива (0 - все символы a-z A-z а-я А-Я, кроме Ё и ё) //символы в интервале от a до z и от A до Z $symbols = array_merge( range('a', 'z'), range('A', 'Z') ); //символы от А до Я $range = range(chr(0xC0), chr(0xDF)); //добавляем в массив символов русские буквы (как прописные, так и строчные) array_walk($range, function($v) use(&$symbols){ $v = iconv('CP1251', 'UTF-8', $v); $symbols[] = $v; $symbols[] = mb_strtolower($v, 'UTF-8'); }); //перемешиваем символы shuffle($symbols); //если указано максимальное количество элементов, обрезаем перемешанный массив до нужного количества if($n) $symbols = array_slice($symbols, 0, $n); //ищем строчные буквы латинского алфавита $small = array_filter($symbols, function($v) { return $v >= 'a' && $v 'z'; }); //ищем прописные буквы латинского алфавита $big = array_filter($symbols, function($v) { return $v >= 'A' && $v 'Z'; }); //выводим результат var_dump( $symbols, //all letters $small, //small letters $big //big letters );
Алфавитный указатель на PHP
Пример, как вывести список из базы данных с группировкой и алфавитным указателем. Чтобы не делать запросы к БД по каждой букве, сделан один большой запрос с выделением первой буквы из названия в отдельное поле `letter` и преобразованием её в верхний регистр. Далее полученный результат скомпонован в массив, ключ будет содержать букву, а значение, массив всех записей по данной букве.
prepare("SELECT *, UPPER(LEFT(`name`, 1)) AS `letter` FROM `table` ORDER BY `name`"); $sth->execute(); $list = $sth->fetchAll(PDO::FETCH_ASSOC); // Компонуем массив в виде буква => все записи $data = array(); foreach ($list as $list_row) < foreach ($en as $row) < if ($list_row['letter'] == $row) < $data[$row][] = $list_row; >> foreach ($ru as $row) < if ($list_row['letter'] == $row) < $data[$row][] = $list_row; >> >
Вывод на страницу
Чтобы вывести массив в несколько колонок применена функция array_chunk() и два вложенных цикла foreach.
CSS:
/* Навигация */ .pointer < margin-bottom: 10px; font-size: 16px; >.pointer a < display: inline-block; padding: 3px; font-weight: 600; color: orange; text-decoration: none; >.pointer span < display: inline-block; padding: 3px; color: #999; >/* Список */ .list td < width: 120px; padding: 5px; vertical-align: top; >.list ul < padding: 0; margin: 0 0 0 10px; >.list ul li < padding: 0; margin: 0 0 3px 0; >.list ul li a