|
Применение функции ко всем элементам массива
ADO в Delphi AJAX Android C++ CakePHP CMS COM CSS Delphi Flash Flex HTML Internet Java JavaScript MySQL PHP RIA SCORM Silverlight SQL UML XML Бази даних Веб-розробка Генетичні алгоритми ГІС Гітара Дизайн Економіка Інтелектуальні СДН Колір Масаж Математика Медицина Музика Нечітка логіка ООП Патерни Подання знань Розкрутка сайту, SEO САПР Сесії в PHP Системне програмування Системний аналіз Тестологія Тестування ПЗ Фреймворки Штучний інтелект
|
Применение функции ко всем элементам массива
Применение функции ко всем элементам массиваФункция array_walk(массив, функция [, данные]) применяет созданную пользователем функцию функция ко всем элементам массива массив и возвращает true в случае успешного выполнения операции и false – в противном случае. Пользовательская функция, как правило, имеет два аргумента, в которые поочередно передаются значение и ключ каждого элемента массива. Но если при вызове функции array_walk() указан третий аргумент, то он будет рассмотрен как значение третьего аргумента пользовательской функции, смысл которого определяет сам пользователь. Если функция пользователя требует больше аргументов, чем в нее передано, то при каждом вызове array_walk() будет выдаваться предупреждение. Если необходимо работать с реальными значениями массива, а не с их копиями, следует передавать аргумент в функцию по ссылке. Однако нужно иметь в виду, что нельзя добавлять или удалять элементы массива и производить действия, изменяющие сам массив, поскольку в этом случае результат работы array_walk() считается неопределенным. <?php
$books1 = array(
"А.С. Пушкин"=>"Руслан и Людмила",
"Л.Н. Толстой"=>"Война и мир",
"М.Ю. Лермонтов"=>"Герой нашего времени");
// создаем функцию, которую хотим
// применить к элементам массива
function try_walk($val,$key,$data){
echo "$data \"$val\" написал $key<br>";
}
// применяем ко всем элементам массива
// $book1 функцию try_walk
array_walk($books1,"try_walk","Роман");
?>
Пример 7.11. Применение функции ко
всем элементам массиваВ результате работы скрипта получим: Роман "Руслан и Людмила" написал А.С. Пушкин
Роман "Война и мир" написал Л.Н. Толстой
Роман "Герой нашего времени"
написал М.Ю. Лермонтов
Заметим, что мы не изменили значений у элементов массива. Чтобы их изменить, надо было передавать значения в переменную $var функции try_walk по ссылке. <?php
$books1 = array(
"А.С. Пушкин"=>"Руслан и Людмила",
"Л.Н. Толстой"=>"Война и мир",
"М.Ю. Лермонтов"=>"Герой нашего времени");
// создаем функцию, которую хотим
// применить к элементам массива
function try_walk(&$val,$key){
$key = "<p>Автор: " .$key ."<br>";
$val = "Название: \"" . $val ."\"</p>";
echo $key.$val;
}
// применяем ко всем элементам массива
// $book1 функцию try_walk
array_walk($books1,"try_walk");
print_r($books1);
?>
Пример 7.12. Применение функции ко
всем элементам массива. Вариант 2В результате работы скрипта получим: Автор: А.С. Пушкин
Название: "Руслан и Людмила"
Автор: Л.Н. Толстой
Название: "Война и мир"
Автор: М.Ю. Лермонтов
Название: "Герой нашего времени"
Array ( [А.С. Пушкин] =>
Название: "Руслан и Людмила"
[Л.Н. Толстой] =>
Название: "Война и мир"
[М.Ю. Лермонтов] =>
Название: "Герой нашего времени")
Зверніть увагу на додаткові посиланняЯкщо вас цікавить...Головний розділСторінки, близькі за змістомзагрузка...
|
Теми розділу
Сторінки, близькі за змістом
|
|
Copyright © 2008—2026 Портал Знань.
При використанні матеріалів посилання, для інтернет-ресурсів — гіперпосилання, на Znannya.org обов'язкове.
Зв'язок
|
НТУУ "КПІ" Інженерія програмного забезпечення КПІ Лабораторія СЕТ |
|