Язык программирования PHP | страница 68
> [, сохранять_ключи])
В результате работы array_chunk() возвращает многомерный массив, элементы которого представляют собой полученные подмассивы. Если задать параметр сохранять ключи как true, то при разбиении будут сохранены ключи исходного массива. В противном случае ключи элементов заменяются числовыми индексами, которые начинаются с нуля.
Пример 7.15. У нас есть список приглашенных, оформленный в виде массива их фамилий. У нас имеются столики на три персоны. Поэтому нужно распределить всех приглашенных по трое.
>
>$persons = array("Иванов", "Петров",
> "Сидорова","Зайцева", "Волкова");
>$triples = array_chunk($persons,3);
> // делим массив на подмассивы
> // по три элемента
>foreach ($triples as $k => $table){
> // выводим полученные тройки
> echo "За столиком номер $k сидят:
";
> foreach ($table as $pers)
> echo "
> echo "";
>}
>?>
В результате получим:
>за столиком номер 0 сидят:
>• Иванов
>• Петров
>• Сидорова
>за столиком номер 1 сидят:
>• Зайцева
>• Волкова
Сумма элементов массива
В этом разделе мы познакомимся с функцией, вычисляющей сумму всех элементов массива. Сама задача вычисления суммы значений массива предельно проста. Но зачем писать лишний раз один и тот же код, если можно воспользоваться специально созданной и всегда доступной функцией. Функция эта называется, как можно догадаться, array_sum(). И в качестве параметра ей передается только имя массива, сумму значений элементов которого нужно вычислить.
В качестве примера использования этой функции приведем решение более сложной задачи, чем просто вычисление суммы элементов. Этот пример также иллюстрирует применение функции 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);
> // получаем массив элементов,