boolean array_multisort(array data, integer direction, .)
Функция array_multisort (листинг 11.32) одновременно сортирует массивы, как если бы это были столбцы одной таблицы. Аргумент data представляет собой массив, а аргумент direction является одной из двух констант, SORT_ASC или SORT_DESC, что соответствует сортировке по возрастанию и убыванию соответственно. По умолчанию принимается сортировка по возрастанию. Кроме того, можно задавать любое количество массивов, но при этом можно менять порядок сортировки в нужном порядке для каждого массива в отдельности. Функция array_multisort аналогична сортировке результатов работы оператора объединения реляционной базой данных. Первые элементы массивов объединяются в виртуальную строку, и все элементы этой строки перемещаются вместе. Массивы сортируются по первому массиву. В случае повторения значений в первом массиве строки будут отсортированы по второй строке. 

| Листинг 11.32. Функция array_multisort_
<?php
//создать данные
$color = array("green", "green", "blue", "white", "white"); $item = array("dish soap", "hand soap", "dish soap", "towel",
"towel");
$dept = array("kitchen", "bathroom", "kitchen", "kitchen",
"bathroom"); $price = array(2.50, 2.25, 2.55, 1.75, 3.00); //отсортировать по отделу, названию товара, цвету, цене array_multisort($dept, SORT_ASC, $item, SORT_ASC,
$color, SORT_ASC, $price, SORT_DESC);
//распечатать отсортированный список for($i=0; $i < count($item); $i++)
{
print("$dept[$i] $item[$i] $color[$i] $price[$i]<br>n");
}
?>

array array_pad(array data, integer size, value padding)
Функция array_pad (листинг 11.33) добавляет элементы в массив до тех пор, пока не будет достигнуто количество элементов, заданных аргументом size. Если массив уже имеет достаточный размер, элементы больше не добавляются. В противном случае аргумент padding предназначен для заполнения новых элементов. Если аргумент size является положительным, padding добавляется в конец массива. Если аргумент size является отрицательным, padding добавляется в начало массива.

j Листинг 11.33. Функция array_pad_
<?php
// создать тестовые данные
$data = array(1,2,3);
//добавить "start" в начало массива
$data = array_pad($data, -4, "start");
// добавить "end" в конец массива
print_r(array_pad($data, 6, "end"));
?>

value array_pop(array stack)
Функция array_pop (листинг 11.34) возвращает последний элемент массива, удаляя его из массива. Ее дополняет функция array_push, а функции array_shift и array_unshift удаляют элементы из начала массива. 
j Листинг 11.34. Функция array_pop, array_push_
<?php
// создать массив названий цветов $colors = array("red", "blue", "green"); $lastColor = array_pop($colors); // напечатать "green" print($lastColor . "n");
//показывает, что массив colors содержит red, blue print_r($colors);
//записать в стек еще два значения array_push($colors, "purple", "yellow");
// показывает, что массив colors содержит red, blue, purple, yellow
print_r($colors);
?>

boolean array_push(array stack, expression entry, ...)
Функция array_push добавляет одно или несколько значений в конец массива. Она рассматривает массив как стек. Функцией array_pop можно воспользоваться для удаления элементов из стека. Функции array_shift и array_unshift предназначены для добавления и удаления элементов из массива.
array array_rand(array data, integer quantity)
Функция array_rand (листинг 11.35) возвращает количество произвольно выбранных индексов из массива. Необязательный элемент quantity имеет значение по умолчанию, равное единице, и в этом случае функция возвращает один индекс. В противном случае функция возвращает массив индексов.

| Листинг 11.35. Функция array_rand_
<?php
// задать массив наименований цветов
$colors = array("red", "blue", "green");
//запустить генератор случайных чисел
srand(time());
// выбрать один цвет
print($colors[array_rand($colors)] . "n"); // выбрать два цвета print_r(array_rand($colors, 2));
?>