Часть IV. PHP-функции
Глава 20. Функции для работы с массивами
Данная глава подробно рассказывает о способах взаимодействия массивов, а также отом, какможно манипулировать значениями массивов. Какизвестно, чтобы создать массив, необходимо также умение работать с ним. В этой главе и будут приведены способы преобразования массивов, манипуляции значениями массива, а также все, что связано с профессиональной и корректной работой массива.
Функции, которые будут рассмотрены, позволяют взаимодействовать и управлять массивами в различных направлениях. Массивы являются незаменимыми атрибутами для сохранения, управления и действия над заданными переменными. Простые и многомерные массивы поддерживаются в РНР и могут быть или разработаны пользователем, или созданы другой функцией.
Данная глава содержат следующие темы:
• подсчет значений массива;
• вычисления матриц;
• функциивозвращения;
• применение вызовов;
• функции объединения;
• сортировка массивов;
• вытеснение элементов из массива;
• получение элементовсогласно внутреннемууказателю массива;
• функции среза элементов массива.
20.1. Подсчет значений массива
При работе с массивами у программиста возникают задачи, когда необходимо не только ввести и вывести значения массива, но и производить действия над массивами (например, количественная оценка значений переменных, суммирование
и подсчет количества индексов массива). Все это выполняют функции, описанные ниже.
Чтобы определить количество подобных переменных, т. е. одинаковых значений, в необходимо использовать функцию
array array_count_values(array input)
Данная функция возвращает массив со равными количеству
ющих значений в первоначальном массиве. Проиллюстрируем это на примере:
$а = array(1,2,4,5, "hello", 1,1,1, "hello", "world", 4) ;
array count values($a) ;
Выполнив данную программу, вы получите следующий массив:
array ([1] => 4 [2] => 1 [4] => 2 [5] => 1 [hello] => 2 [world] => 1)
Из результата работы данной функции можно сделать вывод, что рассматриваемая функция подсчитала количество одинаковых значений и создала новый массив, из которого видно, что единица в массиве встречается четыре раза, двойка — один, четверка — два и т. д. Данная функция работает в версиях РНР 4 и выше.
Чтобы сложить все значения массива, вам потребуется такая функция:
Например, вы имеете массив значений 3,2,1, 4. Результатом работы данной функции будет число, равное 10. Эта функция применяется в РНР 4 и более старших версиях.
ВНИМАНИЕ
Данная функция возвращает фиксированное значение, т. е. результатом ее деятельности не может быть массив. Тип, который будет принимать переменная при выполнении данной функции, — это либо integer, либо float.
Как работает данная функция, можно понять из примеров, приведенных ниже.
Пример 20.1. Функция array_sum (вариант 1)
<?
$а = array(5,7,10,1);
echo "Сумма значений элементов массива будет целым числом = " . array_sum($а)."n";
?>
Результат программы:
Сумма переменных массива будет целым числом = 23
Пример 20.2. Функция array_sum (вариант 2)
<?
$b = array("a"=>1.4, "b"=>3.3, "c"=>7.4, "d");
echo "Данная сумма будет числом с плавающей запятой = ".array_sum($b)."n";
?>
Результатом выполнения будет следующая строка:
Данная сумма будет числом с плавающей запятой = 12.1
Обратите внимание: в данном примере создан массив следующего синтаксиса:
Этот массив имеет переменную d, которая не ссылается на какое-либо число. Поэтому число, которое будет прибавлять функция array_sum() во время получения значения переменной d, будет равным 0, т.е. будет происходить следующее: 1,4 + 3,3 + 7,4 + 0 = 12,1.
ВНИМАНИЕ
При желании можно присвоить это значение какой-либо переменной. Например:
После этого можно производить работу с данной переменной как полноправной, не считая ее массивом.
Иногда бывает необходимо подсчитать количество элементов переменной или массива. Для этого применяют функцию count Элементарный синтаксис:
Данная функция возвращает целое число. Как правило, она применяется для подсчета значений массива. Основная особенность данной функции состоит в том, что она возвращает значение, равное единице, если переменная не является массивом. Если же она является массивом и не определена, то она возвращает значение 0. Во всех других случаях — единицу.
Функция также возвращает значение, равное нулю, когда перемененная инициализирована как пустой массив. Чтобы узнать, имеет наша переменная какое-либо значение или нет, и была создана функция isset(), которая определяет, была ли переменная инициализирована. Например:
$my = "newValue";
echo isset($my) ; // true
unset($my) ;
echo isset($my); // false
Данная функция возвращает значение true в случае, если переменная определена, и false, если нет. Обратите внимание: в нашем примере использована функция unset(). Это полная противоположность функции isset().
Приведем несколько примеров, чтобы объяснить все вышесказанное подробнее.
Пример 20.3. Функция count (вариант 1)
$var = 25;
$var2 = "hello";
$result = count($var);
$result2 = count($var2);
echo $result;
echo $result2;
Этот пример выведет результат, равный двум единицам (11). Это значит, что само выполнение функции не зависит от тех значений, которым равны переменные, главное, чтобы они хоть чему-нибудь были равны. Обратите внимание: в первом случае переменная является целочисленной, а во втором — строкой.
Пример 20.4. Функция count (вариант 2)
$time[0] = "Hello";
$time[1] = 3;
$time[2] = 5;
$time[3] = "World";
$result = count($time);
echo $result;
Результатом выполнения данной функции будет число, равное 4. Думаем, тут все предельно ясно и не потребует каких-либо пояснений.
Пример 20.5. Функция count (вариант 3)
$foo[0] = 1;
$foo[1] = 3;
$foo[4] = 5;
$result = count($foo);
echo $result;
Тут специально пропущена последовательность индексов массива, чтобы показать, что произойдет и как изменится результат по сравнению с предыдущим. В итоге получится три.