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]   

> Без описания
sandals
Отправлено: 13 Февраля, 2013 - 21:19:41
Post Id



Новичок


Покинул форум
Сообщений всего: 19
Дата рег-ции: Февр. 2013  
Откуда: Odessa, UA


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




Здравствуйте! Вопрос по массивам:

Есть функция, которая генерирует массив такого вида:

CODE (htmlphp):
скопировать код в буфер обмена
  1. (
  2.     [content] => Array
  3.         (
  4.             [1] => Array
  5.                 (
  6.                     [key] => percent
  7.                     [value] => 1.3
  8.                  )
  9.         )
  10. )


Мне нужно вставить в еще оно значение в массив:
(пример как должно это выглядеть:
CODE (htmlphp):
скопировать код в буфер обмена
  1.  
  2. (
  3.     [content] => Array
  4.         (
  5.             [1] => Array
  6.                 (
  7.                     [id] => 1
  8.                     [key] => percent
  9.                     [value] => 1.3
  10.                  )
  11.         )
  12. )
  13.  


Скажите, как я могу это сделать?

(Отредактировано автором: 13 Февраля, 2013 - 23:24:33)

 
 Top
ams
Отправлено: 14 Февраля, 2013 - 00:18:01
Post Id



Посетитель


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


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




Покажи функцию

НУ а так, можно и так

PHP:
скопировать код в буфер обмена
  1.  
  2. foreach( $a['content'] as &$v) {
  3.         $v['d'] = 123;
  4. }
  5.  
 
 Top
sandals
Отправлено: 14 Февраля, 2013 - 01:42:04
Post Id



Новичок


Покинул форум
Сообщений всего: 19
Дата рег-ции: Февр. 2013  
Откуда: Odessa, UA


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




Функции, которые возвращают массив: http://gameq[dot]sourceforge[dot]net/

Суть в том, что я использую фреймворк, и его парсер шаблонов.
В шаблоне я просто использую переменные такого вида:
{variable}
А вот как вывести через переменную ID, например {id}?

Вот код моей функции:

CODE (htmlphp):
скопировать код в буфер обмена
  1. function index()
  2.         {
  3.        
  4.                
  5.                 $this->load->model('server_m');
  6.                 $this->load->library('parser');
  7.                 //get data from database
  8.                 $query = $this->server_m->get_entries('servers', 2);
  9.                
  10.                 // GQ settings
  11.                 $gq = new GameQ();
  12.                 $gq->setOption('timeout', 5); // Seconds
  13.                 $gq->setOption('debug', FALSE);
  14.                 $gq->setFilter('normalise');
  15.                
  16.                
  17.                 foreach($query as $row)
  18.                 {  
  19.                         // массив для передачи данных в функцию (если массив не двумерный, функция не работает)
  20.                         $servers = array(
  21.                         array(
  22.                         'id'   => $row['id'],
  23.                         'host' => $row['address'],
  24.                         'type' => 'cs16')
  25.                         );
  26.                        
  27.                        //получение массива данных
  28.                        $gq->addServers($servers);
  29.                        $results = $gq->requestData();
  30.                
  31.                        //подготовка массива для парсера шаблонов
  32.                        $results = array(
  33.                        'content' => $results,
  34.                         );             
  35.                 }
  36.                 //parse...
  37.                 $this->parser->parse('main_view', $results);
  38.                
  39.                
  40.         }


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

(Отредактировано автором: 14 Февраля, 2013 - 01:45:17)

 
 Top
Anguis
Отправлено: 14 Февраля, 2013 - 01:56:22
Post Id



Частый гость


Покинул форум
Сообщений всего: 253
Дата рег-ции: Июнь 2012  


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




Шаблон main_view покажите, и то место где должен быть id
 
 Top
sandals
Отправлено: 14 Февраля, 2013 - 02:07:00
Post Id



Новичок


Покинул форум
Сообщений всего: 19
Дата рег-ции: Февр. 2013  
Откуда: Odessa, UA


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




{content}{/content} - создает цикл, который выводит все записи.

CODE (htmlphp):
скопировать код в буфер обмена
  1.  
  2.  
  3. {content}
  4.  
  5. <p>Host: <a href= "/servers/stats/{id}">{gq_hostname}</a></p><br>
  6. <p>Host: {gq_address}</p><br>
  7. <hr>
  8. {/content}
  9.  
  10.  

Примерно так. Шаблона как такового нету, ибо не работает пока ничего.

Как вариант - подправить сами функции, которы ввозвращают массив, но я там запутался.

(Отредактировано автором: 14 Февраля, 2013 - 02:10:23)

 
 Top
sandals
Отправлено: 16 Февраля, 2013 - 19:58:23
Post Id



Новичок


Покинул форум
Сообщений всего: 19
Дата рег-ции: Февр. 2013  
Откуда: Odessa, UA


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




up!
 
 Top
esterio
Отправлено: 16 Февраля, 2013 - 20:03:30
Post Id



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


Покинул форум
Сообщений всего: 5025
Дата рег-ции: Нояб. 2012  
Откуда: Украина, Львов


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




ams пишет:
foreach( $a['content'] as &$v) {
$v['d'] = 123;
}

Если кто не вкурсе у ПХП проблеми с памятю при таких записах. Лучше использовать
PHP:
скопировать код в буфер обмена
  1. foreach( $a['content'] as $k=>$v) {
  2.         $a['content'][$k] = 123;
  3. }
 
 Top
NoPaper
Отправлено: 16 Февраля, 2013 - 20:16:58
Post Id



Посетитель


Покинул форум
Сообщений всего: 315
Дата рег-ции: Янв. 2012  
Откуда: Минск


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




Может вся проблема в видимости переменных? $results объявлена в цикле, а парсер страницы использует эту переменную вне цикла
(Добавление)
Такая функция работает?
PHP:
скопировать код в буфер обмена
  1.  
  2. function index(){
  3.  $this->load->model('server_m');
  4.  $this->load->library('parser');
  5.  
  6.  //get data from database
  7.  $query = $this->server_m->get_entries('servers', 2);
  8.                
  9.  // GQ settings
  10.  $gq = new GameQ();
  11.  $gq->setOption('timeout', 5); // Seconds
  12.  $gq->setOption('debug', FALSE);
  13.  $gq->setFilter('normalise');
  14.  
  15.  $results = array('content'=>array());                
  16.  foreach($query as $row)
  17.  {  
  18.    // массив
  19.    $servers = array(
  20.         array(
  21.      'id'   => $row['id'],
  22.      'host' => $row['address'],
  23.      'type' => 'cs16')
  24.    );
  25.                
  26.    //получение массива данных
  27.    $gq->addServers($servers);
  28.    $results_tmp = $gq->requestData();
  29.                
  30.     //подготовка массива для парсера шаблонов
  31.     $results['content'] = $results_tmp;              
  32.   }
  33.   //parse...
  34.   foreach($results['content'] as $key=>$value){
  35.     $results['content'][$key]['id'] = $key;
  36.   }
  37.   $this->parser->parse('main_view', $results);
  38. }
 
 Top
sandals
Отправлено: 16 Февраля, 2013 - 20:43:56
Post Id



Новичок


Покинул форум
Сообщений всего: 19
Дата рег-ции: Февр. 2013  
Откуда: Odessa, UA


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




NoPaper, да! Спасибо большое, все работает. Знал что есть очень простой способ решить эту проблему, но знаний маловато еще Огорчение . Еще раз спасибо!
 
 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