Язык программирования 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:


>


Здесь параметр строка_для вывода содержит строку, заданную любым из известных способов, которая должна быть выведена на экран.


Например, такой скрипт выведет на экран красным цветом "Меня зовут Вася":


>

>Меня зовут



Кроме языковой конструкции echo существует ряд функций для вывода строк. Это в первую очередь функция print и ее разновидности printf, sprintf и т.п.


Функция print позволяет выводить на экран только одну строку и, как и echo, не может быть вызвана с помощью переменных функций, поскольку является языковой конструкцией.


Функция print_r не относится к строковым функциям, как можно было бы подумать. Она отображает информацию о переменной в форме, понятной пользователю.


Функции sprintf и printf обрабатывают переданную им строку в соответствии с заданным форматом. Но о них мы говорить не будем. А поговорим о том, как можно осуществлять поиск в тексте, представленном в виде строки.


Поиск элемента в строке


Для того чтобы определить, входит ли данная подстрока в состав строки, используется функция strpos(). Синтаксис strpos() такой:


Рекомендуем почитать
Половая идентификация ребенка в кинетическом рисунке семьи

Здоровые семейные отношения – это залог успешной полоролевой идентификации ребёнка. Начинаясь с рождения, процесс идентификации протекает непрерывно, с заострениями и актуализациями переживаний на кризисных этапах психосексуального развития. Одним из таких этапов является возраст эдипова комплекса. Конфликты и искажения воспитательного процесса на этом этапе никогда не проходят бесследно и могут с новой силой реанимироваться уже в подростковом возрасте. В пособии представлены основные критерии анализа и подходы к пониманию проблем половой идентификации ребёнка с помощью популярной рисуночной методики.


Искусство Древней Греции и Рима: учебно-методическое пособие

Предлагаемое методическое пособие рассчитано на студентов 1 курса всех форм обучения: очной (дневной, вечерней), при которой студенты слушают полный курс лекций по всем заявленным в пособии темам, и заочной, при которой студенты слушают краткий курс лекций и занимаются самостоятельной подготовкой к экзаменам и зачетам. Пособие содержит изложенную в краткой форме программу занятий, подробный тематический план-конспект по тридцати двум темам изучаемым в течение семестра, список рекомендованной к курсу лекций литературы, вопросы к экзаменам, темы рефератов, семинарских занятий, а также приблизительные темы дипломных и курсовых работ.


Самоучитель Adobe After Effects 6.0

Обучение созданию профессиональных видеофильмов и обработки их на компьютере представлено в виде 12 уроков. Рассматривается, как с помощью программы Adobe After Effects можно редактировать и рисовать последовательность кадров, добавлять титры и заголовки, применять различные видеоэффекты, редактировать звуковое сопровождение фильма. Описывается процесс настройки прозрачности и наложения слоев видео для последующего экспорта фильма в различных форматах. Показываются способы создания анимации при масштабировании, поворотах и в движении с наложением титров и спецэффектов.


История русской литературы XX века (20–90–е годы). Основные имена

Книга является пособием по истории русской литературы XX века (20-90-е годы). Она представляет собой первый том, за которым последует продолжение — «Литературный процесс» (в двух частях). Пособие призвано отразить современный научный взгляд на основные художественные ценности и тенденции развития русской литературы XX века.Издание предназначено для студентов филологических факультетов российских университетов, а также для аспирантов и преподавателей, — всех, кто занимается русской литературой.


Материаловедение

Данный конспект лекций предназначен для студентов высших и средних специальных учебных заведений. В него входят сведения о древесине и древесных материалах, описываются их основные свойства. Дается характеристика металлов и сплавов, рассматриваются способы их применения. Приводятся основные сведения о лакокрасочных, смазочных, облицовочных материалах, а также классификация клеев и области их назначения.


Микроэкономика

В данном конспекте лекций в доступной форме изложены все основные вопросы по дисциплине «микроэкономика».Книга поможет получить основные знания и подготовиться к зачету или экзамену. Рекомендуется студентам экономических специальностей.