| « Поставить закладку » « Сделать стартовой » | |||
|
|||
|
PHP и array_map. Использование обратных вызовов массивов
PHP и array_map. Использование обратных вызовов массивовФункции обратного вызова массивов - очень мощный инструмент, используя который, программист может добиться гибкости и простоты работы с массивами. Функции обратного вызова массивов создаются для модификации содержимого массивов методом "значение за значением".Рассмотрим функцию array_map(), которая в общем виде выглядит так: массив array_map ( функция обработки, массив массив_1 [, массив массив_2...])При этом стоит учесть, что первый параметр - функция обработки массива, добжна работать именно с тем количеством параметров, которое вы ей передадите. Для примера можно рассмотреть простой пример, который просто проилюстрирует работу этой функции: <?php
function format_values($value)
{
return '<b>'.$value.'</b>+';
}
$myarray = array('Первый элемент', 'Второй элемент', 'Третий элемент', 'Четвертый элемент');
$formatted_array = array_map("format_values", $myarray);
echo('<pre>');
print_r($formatted_array);
echo('</pre>');
?>
В результате выполнения этого кода, мы получим значения нашего массива в
жирном начертании. В качестве первого параметра функции array_map
мы передали имя функции, которая будет обрабатывать каждое значение массива
$myarray. Следует отметить что функция array_map
возвращаем массив $formatted_array, каждое значение которого
обработано функцией format_values.Этот пример очень примитивен и несет скорее ознакомительную нагрузку. Использование функций обратных вызовов массивов может стать мощным инструментом например при проведении расчетов, или работе с несколькими массивами. Рассмотрим пример передачи в функцию array_map нескольких массивов: <?php
function calculate($x, $y)
{
return $x*$y;
}
$first_array = array(2,3,4);
$second_array = array(3,4,5);
$calculated_array = array_map("calculate", $first_array, $second_array);
echo('<pre>');
print_r($calculated_array);
echo('</pre>');
?>
Теперь функция calculate возвращает произведение элемента массива $first_array
на элемент $second_array. Для вывода результата мы используем функцию
print_r(), которая отображает все элементы массива с
указанием ключа и значения. Вот результат работы скрипта:
Array
(
[0] => 6
[1] => 12
[2] => 20
)
Вполне логичным является такой массив, т.к. 2·3=6, 3·4=12, а 4·5=20.Одним важным фактом является то, что если массивы будут иметь различное количество элементов, то функция будет работать до последнего элемента более "длинного" массива, заменяя значение более "короткого" массива на пустое значение. Вот простой пример, который это доказывает: <?php
function calculate($x, $y)
{
return $x*$y;
}
$first_array = array(2,3,4,8);
$second_array = array(3,4,5);
$calculated_array = array_map("calculate", $first_array, $second_array);
echo('<pre>');
print_r($calculated_array);
echo('</pre>');
?>
Здесь у $first_array больше элементов чем у $second_array, потому
результатом будет:
Array
(
[0] => 6
[1] => 12
[2] => 20
[3] => 0
)
Последнее значение равно нулю, т.к. 8·0=0.В заключение хочу сказать, что функция array_map, одна из многих, которая позволяет просто и эффективно использовать массивы данных в PHP. Автор: http://devoid.com.ua/ Рубрика: PHP
Вышел MySQL 5.1.30, первый стабильный рели....
После публикации 29 тестовых версий анонсирован первый стабильный релиз MySQL 5.1, пригодный для промышленной эксплуатации и обеспечивающий увеличение производительности для "тяжелых" SQL запросов, по сравнению с MySQL 5.0, примерно на 15-20%. Главные новшества появившиеся в MySQL 5.1:
Подробнее... |
Рубрика: MySQL
| Добавлено: 28.11.2008
Тестирование параллельных программ.
Тестирование параллельного программного обеспечения представляет собой более сложную задачу по сравнению с тестированием последовательной программы. Программист должен знать о подводных камнях при тестировании параллельного кода, имеющихся методологиях и инструментарии.
Подробнее... |
Рубрика: Тестирование
| Добавлено: 28.11.2008
Архитектура AMD64 (EM64T).
Аннотация. В статье кратко рассматривается архитектура AMD64 компании AMD и ее реализация EM64T компании Intel. Описаны особенности архитектуры, ее возможности, достоинства и недостатки.
Подробнее... |
Рубрика: Архитектура AMD
| Добавлено: 27.11.2008
Остальные статьи: |
Цитата дня (все,добавить):
|
Realcoding.NET
© 2003-2008 |
Контакты |
Реклама на сайте
|