Warning: Cannot use a scalar value as an array in /home/admin/public_html/forum/include/fm.class.php on line 757

Warning: Invalid argument supplied for foreach() in /home/admin/public_html/forum/include/fm.class.php on line 770

Warning: Invalid argument supplied for foreach() in /home/admin/public_html/forum/topic.php on line 737
Форумы портала PHP.SU :: Применение функции к каждому элементу массива

 PHP.SU

Программирование на PHP, MySQL и другие веб-технологии
PHP.SU Портал     На главную страницу форума Главная     Помощь Помощь     Поиск Поиск     Поиск Яндекс Поиск Яндекс     Вакансии  Пользователи Пользователи


 Страниц (1): [1]   

> Без описания
Tox
Отправлено: 05 Марта, 2012 - 19:02:24
Post Id



Посетитель


Покинул форум
Сообщений всего: 314
Дата рег-ции: Нояб. 2011  
Откуда: Россия


Помог: 0 раз(а)




Вопрос, конечно, нубский, но до мня не доходит. Прочитал здесь http://php.su/functions/?array-walk-recursive
То есть есть форма, все значения checkboxсов записываются в массив. Далее есть пользовательская функция, которая "чистит" все ячейки от всякого хлама. То есть фактически скрипт имеет следующий src:

PHP:
скопировать код в буфер обмена
  1. function test_print($data)
  2. {
  3.           Длинный алгоритм очистки
  4. return $data;
  5. }
  6. if ($_SERVER["REQUEST_METHOD"]=="POST")
  7.     {
  8.         array_walk_recursive($_POST['option'], 'test_print');
  9.  
  10.         }
  11.    
  12. ?>
  13.  
  14.  
  15. <form method="post" action="test.php">
  16.  
  17. <p><b>Some question</b></p>
  18.    <p><input type="checkbox" name="option[]" value="<h1>123</h1>">1<Br>
  19.    <input type="checkbox" name="option[]" value="a2">2<Br>
  20.    <input type="checkbox" name="option[]" value="a3">3<Br>
  21.    <input type="checkbox" name="option[]" value="a4">4<Br>
  22.    <input type="checkbox" name="option[]" value="a5">5</p>
  23.  
  24. <input type="submit" name="submit" value="Save">
  25. </form>
  26.  

А теперь самый нубский вопрос. Как получить значение $data? Обычно, я делаю так: $var1 = test_print($someVar); но это не тот случай. Подскажите. Оф ман читал, да.


-----
In Console We Trust. Code hard. Or die.
 
 Top
DelphinPRO
Отправлено: 05 Марта, 2012 - 19:08:57
Post Id



Активный участник


Покинул форум
Сообщений всего: 7187
Дата рег-ции: Февр. 2012  


Помог: 353 раз(а)




в доке array_walk_recursive все написано
Цитата:
Замечание: Если требуется, чтобы функция funcname изменила значения в массиве, определите первый параметр funcname как ссылку. Тогда все изменения будут применены к элементам массива.

=>
PHP:
скопировать код в буфер обмена
  1. function test_print(&$data)
  2. {
  3.        Длинный алгоритм очистки
  4.        return $data;
  5. }


-----
Чем больше узнаю, тем больше я не знаю.
 
 Top
ugin_root
Отправлено: 05 Марта, 2012 - 19:09:55
Post Id


Частый гость


Покинул форум
Сообщений всего: 134
Дата рег-ции: Май 2011  
Откуда: Киргизия


Помог: 5 раз(а)




PHP:
скопировать код в буфер обмена
  1. $array = array_map(function($v){return $v;}, $array);

(Отредактировано автором: 05 Марта, 2012 - 19:10:52)

 
 Top
Страниц (1): [1]
Сейчас эту тему просматривают: 0 (гостей: 0, зарегистрированных: 0)
« Вопросы новичков »


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



Powered by PHP  Powered By MySQL  Powered by Nginx  Valid CSS  RSS

 
Powered by ExBB FM 1.0 RC1. InvisionExBB