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]   

> Без описания
Ammy
Отправлено: 07 Сентября, 2009 - 09:34:29
Post Id



Частый гость


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


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




Здравствуйте!

Имею цикл, в котором проверяется существование переменной, а затем, по сути (сабжу), нужно добавить её в массив, но не так, чтобы однократно, а с запоминаением, потому что переменная не одна и в цикле будут аналогичным образом обрабатываться и добавляться другие переменные. На выходе необходимо иметь массив, содержащий значения всех переменных, которые подверглись обработке в цикле.

PHP:
скопировать код в буфер обмена
  1. for ($i = 0; $i < count($matches[0]); $i++) {
  2.    $url = 'server'.$i;
  3.    if (isset($$url)) {
  4.       $array = array();
  5.       array_unshift($array,$$url);
  6.       return($ar);
  7.    }
  8. }


Возвращает только одно значение в массиве..

---
До этого пробовала более простым, но не безопасным / плохим способом простого перебора:

PHP:
скопировать код в буфер обмена
  1. return @array($server1, $server2, $server3)


Естественно оно выдавало ошибки, указывая на отсутствие некоторых элементов (а их ведь может быть и больше, и меньше), поэтому решила воспользоваться другим методом, который указала выше.
---



Примечание: данный цикл находится внутри функции, а названия переменных (генерируемые) внутри цикла лишь указывают на их наличие, но сами по себе не несут значений - значения содержат одноимённые переменные расположенные до цикла внутри функции.
(Добавление)
Проблема решена благодаря MONtrade, за что ему огромное спасибо! Вопрос снят. Закатив глазки

Решение:

PHP:
скопировать код в буфер обмена
  1. $array = array();
  2. for ($i = 0; $i < count($matches[0]); $i++) {  
  3.    $url = 'server'.$i;  
  4.    if (isset($$url)) {  
  5.       array_unshift($array,$$url);  
  6.    }  
  7. }
  8. return($array);


Главное - это не забыть вынести некоторые функции из цикла.

(Отредактировано автором: 07 Сентября, 2009 - 10:14:48)

 
 Top
whyte
Отправлено: 09 Сентября, 2009 - 08:50:04
Post Id


Новичок


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


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




Так не подойдет?
PHP:
скопировать код в буфер обмена
  1. $result=array();
  2. for ($i = 0; $i < count($matches[0]); $i++) {
  3.   $url = 'server'.$i;
  4.   if (isset($$url)) {
  5.     $result[$url]=$$url;
  6.   }
  7. }
  8. return $result;

(Отредактировано автором: 09 Сентября, 2009 - 08:51:34)

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


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



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

 
Powered by ExBB FM 1.0 RC1. InvisionExBB