Чтение онлайн

на главную - закладки

Жанры

Курс "Язык программирования PHP"

Савельева Нина Владимировна

Шрифт:

Функция array_chunk

Есть еще одна функция, похожая на array_slice – это array_chunk. Она разбивает массив на несколько подмассивов заданной длины. Синтаксис ее такой:

array_chunk ( массив, размер

[, сохранять_ключи])

В результате работы array_chunk возвращает многомерный массив, элементы которого представляют собой полученные подмассивы. Если задать параметр сохранять ключи как true,

то при разбиении будут сохранены ключи исходного массива. В противном случае ключи элементов заменяются числовыми индексами, которые начинаются с нуля.

Пример 7.15. У нас есть список приглашенных, оформленный в виде массива их фамилий. У нас имеются столики на три персоны. Поэтому нужно распределить всех приглашенных по трое.

<?php

$persons = array("Иванов", "Петров",

"Сидорова","Зайцева", "Волкова");

$triples = array_chunk($persons,3);

// делим массив на подмассивы

// по три элемента

foreach ($triples as $k => $table){

// выводим полученные тройки

echo "За столиком номер $k сидят: <ul>";

foreach ($table as $pers)

echo "<li>$pers";

echo "</ul>";

}

?>

В результате получим:

за столиком номер 0 сидят:

• Иванов

• Петров

• Сидорова

за столиком номер 1 сидят:

• Зайцева

• Волкова

Сумма элементов массива

В этом разделе мы познакомимся с функцией, вычисляющей сумму всех элементов массива. Сама задача вычисления суммы значений массива предельно проста. Но зачем писать лишний раз один и тот же код, если можно воспользоваться специально созданной и всегда доступной функцией. Функция эта называется, как можно догадаться, array_sum. И в качестве параметра ей передается только имя массива, сумму значений элементов которого нужно вычислить.

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

Пример 7.16. Пусть дан массив натуральных чисел. Нужно найти в нем такое число, что сумма элементов справа от него равна сумме элементов слева от него.

<?php

//массив задается функцией 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 "<br>";

// print_r($out_prev);

// echo "$next_sum, $prev_sum<br>";

echo "<hr>";

}

?>

Заключение

Итак, подведем итоги. В этой лекции мы изучили ряд функций, упрощающих работу с массивами данных. Мы рассмотрели функции для поиска значения среди элементов массива; функции для сортировки элементов массива, как по их значениям, так и по ключам; функции, позволяющие применять ко всем элементам массива функцию, созданную пользователем. Кроме того, мы изучили функцию, выделяющую подмассивы из элементов массива, и функцию, вычисляющую сумму всех элементов массива. Использование всех этих функций было продемонстрировано на примерах. Все функции для работы с массивами доступны без каких-либо конфигурационных настроек PHP, и пользоваться ими можно абсолютно свободно. Так что, прежде чем изобретать велосипед, загляните в руководство по языку PHP: – вполне возможно, что кто-то сделал это до вас.

Работа со строками

Строки

Вероятно, читатели примерно представляют, что такое тип данных «строка» и как создать переменную такого типа. В одной из первых лекций мы приводили три способа задания строк: с помощью одинарных кавычек, двойных кавычек и с помощью heredoc–синтаксиса. Отмечали мы и основные различия между этими способами. В основном они касаются обработки переменных и управляющих последовательностей внутри строки.

Поделиться:
Популярные книги

Двойник короля 12

Скабер Артемий
12. Двойник Короля
Фантастика:
аниме
фэнтези
попаданцы
5.00
рейтинг книги
Двойник короля 12

Последний реанорец. Том IX

Павлов Вел
8. Высшая Речь
Фантастика:
фэнтези
попаданцы
аниме
5.75
рейтинг книги
Последний реанорец. Том IX

Сильнейший Столп Империи. Книга 3

Ермоленков Алексей
3. Сильнейший Столп Империи
Фантастика:
аниме
фэнтези
попаданцы
5.00
рейтинг книги
Сильнейший Столп Империи. Книга 3

По прозвищу Святой. Книга первая

Евтушенко Алексей Анатольевич
1. Святой
Фантастика:
попаданцы
альтернативная история
6.40
рейтинг книги
По прозвищу Святой. Книга первая

Черный Маг Императора 9

Герда Александр
9. Черный маг императора
Фантастика:
юмористическое фэнтези
попаданцы
аниме
5.00
рейтинг книги
Черный Маг Императора 9

Большая книга о новой жизни, которую никогда не поздно начать (сборник)

Норбеков Мирзакарим Санакулович
Дом и Семья:
здоровье и красота
5.00
рейтинг книги
Большая книга о новой жизни, которую никогда не поздно начать (сборник)

Древесный маг Орловского княжества 4

Павлов Игорь Васильевич
4. Орловское княжество
Фантастика:
аниме
фэнтези
попаданцы
5.00
рейтинг книги
Древесный маг Орловского княжества 4

Его звали Тони. Книга 5

Кронос Александр
5. Щенки косуль
Фантастика:
городское фэнтези
технофэнтези
попаданцы
7.00
рейтинг книги
Его звали Тони. Книга 5

Последний Паладин. Том 2

Саваровский Роман
2. Путь Паладина
Фантастика:
фэнтези
попаданцы
аниме
5.00
рейтинг книги
Последний Паладин. Том 2

Технарь

Муравьёв Константин Николаевич
1. Технарь
Фантастика:
космическая фантастика
попаданцы
7.13
рейтинг книги
Технарь

Неучтенный элемент. Том 1

NikL
1. Антимаг. Вне системы
Фантастика:
городское фэнтези
фэнтези
5.00
рейтинг книги
Неучтенный элемент. Том 1

Звездная Кровь. Экзарх III

Рокотов Алексей
3. Экзарх
Фантастика:
боевая фантастика
попаданцы
рпг
5.00
рейтинг книги
Звездная Кровь. Экзарх III

На границе империй. Том 7. Часть 2

INDIGO
8. Фортуна дама переменчивая
Фантастика:
космическая фантастика
попаданцы
6.13
рейтинг книги
На границе империй. Том 7. Часть 2

Выйду замуж за спасателя

Рам Янка
1. Спасатели
Любовные романы:
современные любовные романы
7.00
рейтинг книги
Выйду замуж за спасателя