Массивы
Опубликовано:Условие задачи:
Напишите функцию, принимающую в качестве параметра массив, состоящий из чисел, а также булевский параметр. Данная функция должна возвращать отсортированный array. Вид сортировки (по возрастанию или по убыванию) должен зависеть от булевской переменной. Например, пришло это: (5, 3, 7, -1, 0), а должно возвратиться это (-1, 0, 3, 5, 7), или это (7, 5, 3, 0, -1). Вызовите функцию два раза: один раз с сортировкой по возрастанию, а другой - по убыванию.
Решение задачи:
<?php
function printArray ($arr, $bool)
{
if ($bool == false)
{
sort ($arr);
for ($i = 0; $i < count($arr); $i++)
{
echo "$arr[$i] ";
}
echo "<br />";
}
elseif ($bool == true)
{
rsort ($arr);
for ($i = 0; $i < count($arr); $i++)
{
echo "$arr[$i] ";
}
echo "<br />";
}
}
$arr = array(5, 3, 7, -1, 0);
printArray ($arr, true);
printArray ($arr, false);
Дополнено 26.09.2017
Массив городов
Задание из книги Д. Ляпина, А. Никитина «PHP – это просто» после урока 6.
Требуется объявить array: ключи- названия областей; значения - массивы с городами из соответствующей области. Оформить и вывести на экран. Также вывести затем города, начинающиеся на букву "К".
Решение:
Для решения любой задачи программисту прежде всего необходимо представить алгоритм выполнения действий. В данном задании array двумерный: массив областей содержит внутри себя массивы городов. Требуется array областей пройти циклом foreach. Одновременно внутри каждой области обойти array городов. Ниже представлены блок-схемы алгоритмов обходов массивов циклами - внешним для областей и внутренним для городов.
Блок-схема циклов вывода всех городов и областей
Блок-схема циклов вывода городов, начинающихся с буквы "К"
Файл с кодом решения задачи:
<?php
$city_rus = array(
"Московская область" => array("Москва", "Зеленоград", "Клин", "Можайск"),
"Ленинградская область" => array("Санкт-Петербург", "Петергоф", "Тихвин", "Подпорожье", "Кронштадт"),
"Рязанская область" => array("Рязань", "Касимов", "Ряжск", "Скопин", "Рыбное"),
"Республика Карелия" => array("Петрозаводск", "Олонец", "Суоярви", "Сортавала", "Беломорск", "Кемь", "Питкяранта")
);
foreach ($city_rus as $regions => $city_reg)
{
echo $regions , ':<br> ' , implode(', ', $city_reg), '.', '<br>';
}
echo 'Города, начинающиеся с буквы К: ';
foreach ($city_rus as $regions => $city_reg)
{
foreach ($city_reg as $city_rus)
{
/* Так как строка в кодировке utf-8 и в ней есть русские буквы,
используем функцию mb_substr*/
if (mb_substr($city_rus, 0, 1, 'UTF-8') == 'К')
$str .= "$city_rus, ";
}
}
/*Удаляем два последние символа в строке ',' и ' '*/
$result = substr($str, 0, -2);
echo $result . '.';
/* Результат работы скрипта:
Московская область:
Москва, Зеленоград, Клин, Можайск.
Ленинградская область:
Санкт-Петербург, Петергоф, Тихвин, Подпорожье, Кронштадт.
Рязанская область:
Рязань, Касимов, Ряжск, Скопин, Рыбное.
Республика Карелия:
Петрозаводск, Олонец, Суоярви, Сортавала, Беломорск, Кемь, Питкяранта.
Города, начинающиеся с буквы К: Клин, Кронштадт, Касимов, Кемь.
*/
?>