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 :: Изменение данных в Cookie

 PHP.SU

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


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

> Без описания
criaton
Отправлено: 19 Марта, 2010 - 14:57:30
Post Id


Гость


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


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




Существует текущая сессия Cookie:

$_SESSION["numbers"]

Cодержит:

array (1,2,3,4,5,5,6,7,8,9,0);

Как изменить количество дублирование, например цифры 5, какой командой сделать ей допустим 15 копий?
 
 Top
Тоха
Отправлено: 19 Марта, 2010 - 15:18:56
Post Id



Гость


Покинул форум
Сообщений всего: 114
Дата рег-ции: Март 2010  
Откуда: Орел, Россия


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




PHP:
скопировать код в буфер обмена
  1. $_SESSION["numbers"] = array_pad($_SESSION["numbers"],15,5);
 
 Top
Ch_chov
Отправлено: 19 Марта, 2010 - 15:26:59
Post Id



Постоянный участник


Покинул форум
Сообщений всего: 2121
Дата рег-ции: Июль 2008  
Откуда: из города


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




Не совсем понятно для чего это нужно.
Используй цикл и range
 
 Top
kochan10
Отправлено: 19 Марта, 2010 - 16:17:18
Post Id


Гость


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


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




Наверно, не то, что нужно, но всё же:
PHP:
скопировать код в буфер обмена
  1. //Функция для дублирования числа
  2. function func($int, $n=2)
  3.         {
  4.         for($i=0;$i<$n;$i++)
  5.                 {
  6.                 $text.=$int.',';
  7.                 }
  8.         return $text;
  9.         }
  10. $arr=array('1','2','3','4','5','6','7','8','9','0');
  11. $text="";
  12. $num=3;
  13. foreach($arr as $value)
  14.         {
  15.         if($value==$num)
  16.                 {
  17.                 $text.=func($value,5);
  18.                 }
  19.                 else{
  20.                 $text.=$value.',';
  21.                 }
  22.                 //echo $value."|||".$text."\\\ ";
  23.         }
  24. $arr=explode(',',$text);
  25. print_r($arr);

(Отредактировано автором: 19 Марта, 2010 - 16:18:00)

 
 Top
criaton
Отправлено: 19 Марта, 2010 - 20:44:10
Post Id


Гость


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


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




Цитата:
$_SESSION["numbers"] = array_pad($_SESSION["numbers"],15,5);


Пробую применить выше указынный код на практическом примере:


if( isset($_GET['id'])):


$mas_load="15";


$mas_number=$_GET['id'];


$_SESSION["numbers"] = array_pad($_SESSION["numbers"],$mas_load,$mas_number);


//$_SESSION['numbers'][]=$_GET['id'];




endif;


Все верно работает, но если применить допустим создать 15 копий, например цифры 4, то их 15 неполучается, только если удалить 15 копий цифры 5, то все нормально, где в выше приведенном коде есть ошибка которая недает создать также 15 копий для всех остальных цифр?

(Отредактировано автором: 20 Марта, 2010 - 05:15:08)

 
 Top
Тоха
Отправлено: 19 Марта, 2010 - 21:05:44
Post Id



Гость


Покинул форум
Сообщений всего: 114
Дата рег-ции: Март 2010  
Откуда: Орел, Россия


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




честно говоря, вообще не понятна задача скрипта. Механизм чего вы пытаетесь реализовать?
 
 Top
criaton
Отправлено: 20 Марта, 2010 - 06:07:48
Post Id


Гость


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


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




Никто неможет подсказать
 
 Top
Тоха
Отправлено: 20 Марта, 2010 - 07:46:04
Post Id



Гость


Покинул форум
Сообщений всего: 114
Дата рег-ции: Март 2010  
Откуда: Орел, Россия


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




попробуйте решить эту задачу с помощью ассоциативных массивов и будет вам счастье:
PHP:
скопировать код в буфер обмена
  1. //Создаем ассоциативный массив
  2. $arr = array('1'=>0,'2'=>0,'3'=>0,'4'=>0,'5'=>0);
  3.  
  4. if( isset($_GET['id'])) {
  5.  
  6.    $mas_load="15";
  7.    $mas_number=$_GET['id'];
  8.    $_SESSION["numbers"][$mas_number] = $mas_load;
  9.  
  10.    //Соответственно, если надо ДОБАВИТЬ, то пишем:
  11.    $_SESSION["numbers"][$mas_number] += $mas_load;
  12.  
  13. }

(Отредактировано автором: 20 Марта, 2010 - 07:47:44)

 
 Top
criaton
Отправлено: 20 Марта, 2010 - 08:17:28
Post Id


Гость


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


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




Тоха,

хотелось бы как раз в этом ключе:

Цитата:
//Ассоциативный массив
$arr = array(1,2,3,4,5,5,6,7,8,9,0);
 
 Top
JustUserR
Отправлено: 20 Марта, 2010 - 11:48:56
Post Id



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


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


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




criaton Так благодаря serialize-ации массив в сессии работает точно также как и любой другой обычный массив - поэтому для решения вашей задачи просто создаете копию в массива в которую каждый элемент копируете нужное число раз а потом заменяете исходный массив на новый


-----
Сделать можно все что угодно - нужно только старание, терпение и хороший поисковик Улыбка
Безлимитный web-хостинг от 15 рублей за 40 МБ дискового пространства - http://ihost[dot]oks71[dot]ru/
 
 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