value array_reduce(array data, string function, value initial)
Функция array_reduce (листинг 11.36) преобразует массив в одно значение посредством повторного задания пар значений функции обратного вызова. По умолчанию PHP задает первые два элемента функции обратного вызова, которая должна возвратить значение. Затем с этим значением и следующим элементом массива PHP вызывает функцию обратного вызова. Значение, указанное в необязательном аргументе initial, будет использовано PHP при первом вызове функции обратного вызова. 
Листинг 11.36. Функция arrayreduce

<?php
// задать массив наименований цветов $colors = array(0xFF99FF, 0xCCFFFF, 0xFFFFEE); function maskColors($c1, $c2) {
return($c1 & $c2);
}
$color = array_reduce($colors, 'maskColors', 0xFFFFFF); $colorHTML = sprintf('#%X', $color); print('<table><tr>' .
"<td bgcolor="$colorHTML">$colorHTML</td>". '</tr></table>');

array array_reverse(array data, boolean preserve_keys)
Функция array_reverse (листинг 11.37) возвращает данные, заданные аргументом data, в обратном порядке. Элементы при этом никак не отсортированы, а просто следуют в обратном порядке. Если задать для необязательного аргумента preserve_keys значение TRUE, то будут сохраняться значения индексов (рис. 11.9).

Листинг 11.37. Функция array_reverse

<?php
$data = array(3, 1, 2, 7, 5); print_r(array_reverse($data)); print_r(array_reverse($data, TRUE));
?>
Данные
value array_search(value query, array data, boolean check_type)
Функция array_search (листинг 11.38) возвращает индекс элемента массива, заданного аргументом data, который соответствует значению, заданному аргументом query; если он не найден, возвращает значение FALSE. Если аргумент check_type имеет значение TRUE, функция возвращает результат только при совпадении типов.

Листинг 11.38. Функция array_search

<?php
$data = array(3, 1, 2, 7, 5);
if(FALSE !== ($key = array_search(3, $data, TRUE)))
{
print("3 найдено в элементе $key");
}
else
{
pri^C'Ife найдено");
}
?>

value array_shift(array stack)
Функция array_shift (листинг 11.39) возвращает первый элемент массива, удаляя его, что позволяет работать с массивом как со стеком. Функция array_unshift добавит элемент в начало массива. Функции array_pop и array_push предназначены для выполнения аналогичных операций, но с концом массива. Каждая операция сдвига соответствующим образом изменяет значения индексов.

Листинг 11.39. Функция arrayshift, arrayunshift

<?php
// задать массив наименований цветов $colors = array("red", "blue", "green"); $firstColor = array_shift($colors); // напечатать "red" print($firstColor . "n"); //распечатать цвета (0=>blue, green) print_r($colors);
array_unshift($colors, "purple", "yellow");
// распечатать цвета (0=>purple, yellow, blue, green)
print_r($colors);
?>

array array_slice(array data, integer start, integer stop)
Функция array_slice (листинг 11.40) возвращает часть массива, начинающуюся с элемента, заданного аргументом start. При задании в аргументе start отрицательного значения задается смещение относительно последнего элемента. Необязательный аргумент stop позволяет задавать количество возвращаемых элементов и место, где заканчиваются возвращаемые значения. Положительное значение этого аргумента рассматривается как максимальное количество возвращаемых элементов. Отрицательное значение аргумента stop используется для вычисления отрицательного смещения относительно последнего элемента массива. Сравните эту функцию с функциями array_merge и array_splice. 

Листинг 11.40. Функция array_slice

<?php
// задать массив наименований цветов $colors = array("red", "blue", "green",
"purple", "cyan", "yellow"); // получить новый массив, состоящий из отрезка, // начиная с "green" и кончая "cyan" print_r(array_slice($colors, 2, 3));
?>