Главная > Программирование > РНР: настольная книга программиста
<< Предыдущий параграф
Следующий параграф >>
<< Предыдущий параграф Следующий параграф >>
Макеты страниц

Часть 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 и выше.

Чтобы сложить все значения массива, вам потребуется такая функция:

mixed array sum (array)

Например, вы имеете массив значений 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.


ВНИМАНИЕ

При желании можно присвоить это значение какой-либо переменной. Например:

$с = array_sum($а);

После этого можно производить работу с данной переменной как полноправной, не считая ее массивом.


Иногда бывает необходимо подсчитать количество элементов переменной или массива. Для этого применяют функцию count Элементарный синтаксис:

int count (mixed var)

Данная функция возвращает целое число. Как правило, она применяется для подсчета значений массива. Основная особенность данной функции состоит в том, что она возвращает значение, равное единице, если переменная не является массивом. Если же она является массивом и не определена, то она возвращает значение 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;

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

<< Предыдущий параграф Следующий параграф >>
Оглавление