Язык программирования PHP - [35]
В качестве примера использования этой функции приведем решение более сложной задачи, чем просто вычисление суммы элементов. Этот пример также иллюстрирует применение функции array_slice(), которую мы обсуждали чуть раньше.
Пример 7.16. Пусть дан массив натуральных чисел. Нужно найти в нем такое число, что сумма элементов справа от него равна сумме элементов слева от него.
>
>//массив задается функцией array
>$arr = array(2,1,3,4,5,6,4);
>// перебираем каждый элемент массива $arr.
>// Внутри цикла текущий ключ массива
>// содержится в переменной $k,
>// текущее значение – в переменной $val
>foreach ($arr as $k => $val){
> $p = $k + 1;
>// синтаксис array array_slice (
> array array,int offset [,int length])
>// array_slice выделяет подмассив
>// длины length в массиве array,
>// начиная с элемента offset.
> $out_next = array_slice($arr,$p);
> // получаем массив элементов,
> // идущих после текущего
> $out_prev = array_slice($arr,0,$k);
> // получаем массив элементов,
> // идущих перед текущим
>// функция mixed array_sum (array array)
>// подсчитывает сумму элементов массива array
> $next_sum = array_sum($out_next);
> $prev_sum = array_sum($out_prev);
>// если сумма элементов до текущего равна
>// сумме элементов после, то выводим
>// значение текущего элемента
> if ($next_sum==$prev_sum)
> echo "value:$val";
>// можно посмотреть, что представляют собой
>// рассмотренные массивы на каждом шаге
>// print_r($out_next); echo "
";
>// print_r($out_prev);
>// echo "$next_sum, $prev_sum
";
> echo "
";
>}
>?>
Заключение
Итак, подведем итоги. В этой лекции мы изучили ряд функций, упрощающих работу с массивами данных. Мы рассмотрели функции для поиска значения среди элементов массива; функции для сортировки элементов массива, как по их значениям, так и по ключам; функции, позволяющие применять ко всем элементам массива функцию, созданную пользователем. Кроме того, мы изучили функцию, выделяющую подмассивы из элементов массива, и функцию, вычисляющую сумму всех элементов массива. Использование всех этих функций было продемонстрировано на примерах. Все функции для работы с массивами доступны без каких-либо конфигурационных настроек PHP, и пользоваться ими можно абсолютно свободно. Так что, прежде чем изобретать велосипед, загляните в руководство по языку PHP: – вполне возможно, что кто-то сделал это до вас.
Работа со строками
Строки
Вероятно, читатели примерно представляют, что такое тип данных «строка» и как создать переменную такого типа. В одной из первых лекций мы приводили три способа задания строк: с помощью одинарных кавычек, двойных кавычек и с помощью heredoc–синтаксиса. Отмечали мы и основные различия между этими способами. В основном они касаются обработки переменных и управляющих последовательностей внутри строки.
>
>echo 'В такой строке НЕ обрабатываются
> переменные и большинство
> последовательностей';
>echo "Здесь переменные и последовательности
> обрабатываются";
>echo <<
>Здесь тоже обрабатываются как переменные,
>так и управляющие последовательности.
>И кроме того, можно вводить символы кавычек
>без их экранирования обратным слэшем.
>EOT;
>?>
Уже не раз, начиная с самой первой лекции, мы использовали функцию echo. На самом деле, echo – не функция, а языковая конструкция, поэтому использовать при ее вызове круглые скобки не обязательно. Echo позволяет выводить на экран строки, переданные ей в качестве параметров. Параметров у echo может быть сколько угодно. Их разделяют запятыми или объединяют с помощью оператора конкатенации и никогда не заключают в круглые скобки.
>
>echo "Пришел ", "увидел ", "победил ";
>// выведет строку "Пришел увидел победил"
>// многие предпочитают передавать несколько
>// параметров в echo с помощью конкатенации
>echo "Пришел " . "увидел " . "победил ";
>// тоже выведет строку
>// "Пришел увидел победил"
>echo ("Пришел ", "увидел ", "победил ");
>// выдаст ошибку: unexpected ','
>?>
Существует сокращенный синтаксис для команды echo:
>=строка_для_вывода?>
Здесь параметр строка_для вывода содержит строку, заданную любым из известных способов, которая должна быть выведена на экран.
Например, такой скрипт выведет на экран красным цветом "Меня зовут Вася":
> $name="Вася" ?>
>Меня зовут =$name?>
Кроме языковой конструкции echo существует ряд функций для вывода строк. Это в первую очередь функция print и ее разновидности printf, sprintf и т.п.
Функция print позволяет выводить на экран только одну строку и, как и echo, не может быть вызвана с помощью переменных функций, поскольку является языковой конструкцией.
Функция print_r не относится к строковым функциям, как можно было бы подумать. Она отображает информацию о переменной в форме, понятной пользователю.
Функции sprintf и printf обрабатывают переданную им строку в соответствии с заданным форматом. Но о них мы говорить не будем. А поговорим о том, как можно осуществлять поиск в тексте, представленном в виде строки.
Поиск элемента в строке
Для того чтобы определить, входит ли данная подстрока в состав строки, используется функция strpos(). Синтаксис strpos() такой:
«Лирика обладает одним несомненным преимуществом перед другими родами поэзии: она лучше всего освещает нам личный мир поэта, ту сферу, которую выделяет для него в широком Божьем мире его темперамент, обстановка, симпатии, верования; она показывает степень отзывчивости поэта; т.е. его способности переживать разнородные душевные состояния: она часто открывает нам уголки поэтической деятельности, где живут не оформившиеся еще образы, задатки для определенных фигур эпоса и драмы. В эпосе и драме образы становятся разнообразнее и пестрее, но вместе с тем славятся объективнее, особенно в драме…».
В книге кратко изложены ответы на основные вопросы темы «Уголовное право. Особенная часть». Издание поможет систематизировать знания, полученные на лекциях и семинарах, подготовиться к сдаче экзамена или зачета.Пособие адресовано студентам высших и средних образовательных учреждений, а также всем интересующимся данной тематикой.
Обучение созданию профессиональных видеофильмов и обработки их на компьютере представлено в виде 12 уроков. Рассматривается, как с помощью программы Adobe After Effects можно редактировать и рисовать последовательность кадров, добавлять титры и заголовки, применять различные видеоэффекты, редактировать звуковое сопровождение фильма. Описывается процесс настройки прозрачности и наложения слоев видео для последующего экспорта фильма в различных форматах. Показываются способы создания анимации при масштабировании, поворотах и в движении с наложением титров и спецэффектов.
В учебном пособии в краткой и доступной форме рассмотрены все основные вопросы, предусмотренные государственным образовательным стандартом и учебной программой по дисциплине «Финансовое право».Книга позволит быстро получить основные знания по предмету, а также качественно подготовиться к зачету и экзамену.Рекомендуется студентам, аспирантам и преподавателям по юридическим, экономическим и управленческим специальностям, а также сотрудникам банков.Автор книги, Шевчук Денис Александрович, имеет опыт преподавания различных дисциплин в ведущих ВУЗах Москвы (экономические, юридические, технические, гуманитарные), два высших образования (экономическое и юридическое), более 30 публикаций (статьи и книги), Член Союза Юристов Москвы, Член Союза Журналистов России, Член Союза Журналистов Москвы, Стипендиат Правительства РФ, опыт работы в банках, коммерческих и государственных структурах (в т.ч.
Книга посвящена правовым, психологическим и криминалистическим основам следственных действий как процессуальных способов доказывания по уголовным делам. Рассмотрены общая характеристика следственного действия, психологические условия и приёмы повышения их эффективности, даны рекомендации по подготовке и проведению отдельных видов основных следственных действий, регламентируемых ныне действующим УПК РФ.Для работников правоохранительных органов, студентов, аспирантов, докторантов, профессорско-преподавательского состава юридических учебных заведений.
Содержащиеся в пособии контрольно-измерительные материалы (КИМы) для 5 класса, аналогичные материалам ЕГЭ, составлены в соответствии с программой общеобразовательных учреждений по русскому языку и учитывают возрастные особенности учащихся. В конце пособия даны ответы на все варианты тестов, предложены диктанты различных типов.Пособие адресовано учителям, ученикам, их родителям и всем, кому необходимо закрепить и систематизировать знания перед ЕГЭ.