Форум Flasher.ru
Ближайшие курсы в Школе RealTime
Список интенсивных курсов: [см.]  
  
Специальные предложения: [см.]  
  
 
Блоги Правила Справка Пользователи Календарь Сообщения за день
 

Вернуться   Форум Flasher.ru > Архив Flasher.ru > Программирование > PHP

Версия для печати  Отправить по электронной почте    « Предыдущая тема | Следующая тема »  
Опции темы Опции просмотра
 
Создать новую тему  
Старый 24.11.2001, 02:58
сочиNetz вне форума Посмотреть профиль Отправить личное сообщение для сочиNetz Посетить домашнюю страницу сочиNetz Найти все сообщения от сочиNetz
  № 1  
сочиNetz

Регистрация: Apr 2000
Адрес: Москва
Сообщений: 945
Отправить сообщение для сочиNetz с помощью ICQ
По умолчанию Изменение элемента массива

столкнулся с такой проблемой:
Код:
$name='smth'; //к примеру
$score='123'; //к примеру
while(list(,$user)=each($arr)){
	list($nameTmp,$scoreTmp)=split("\t",$user);
	if($name == $nameTmp){
		$found='yes';
		$scoreTmp=rtrim($scoreTmp);
		$scoreTmp+=$score;
		$user="$nameTmp\t$scoreTmp\n";
		break;
	};
};
по моему замыслу при совпадающем имени к scoreTmp добавляется score и суется обратно в массив $arr, однако ничего не происходит массив остается без изменения. foreach, очевидно не поможет, т.к. в мануале написано, что : note that foreach operates on a copy of the specified array, not the array itself, therefore the array pointer is not modified as with the each() construct and changes to the array element returned are not reflected in the original array.
Имя $name в массиве есть точно.
__________________
Фоторобот UltimateFlashFace: http://flashface.ctapt.de, Большой респект Артему Мельникову!

Старый 24.11.2001, 05:31
kompadre вне форума Посмотреть профиль Отправить личное сообщение для kompadre Найти все сообщения от kompadre
  № 2  
kompadre
 
Аватар для kompadre

Регистрация: Aug 2001
Адрес: Barcelona
Сообщений: 1,277
Отправить сообщение для kompadre с помощью ICQ
А ничего и не должно случиться, лист делает точно такую-де копию .

Тебе нужно действовать хитрее


Последний раз редактировалось kompadre; 24.11.2001 в 05:40.
Старый 24.11.2001, 06:02
kompadre вне форума Посмотреть профиль Отправить личное сообщение для kompadre Найти все сообщения от kompadre
  № 3  
kompadre
 
Аватар для kompadre

Регистрация: Aug 2001
Адрес: Barcelona
Сообщений: 1,277
Отправить сообщение для kompadre с помощью ICQ
Код:
$name='smth'; //к примеру
$score='123'; //к примеру
while(list($index,$user)=each($arr)){
	list($nameTmp,$scoreTmp)=split("\t",$user);
	if($name == $nameTmp){
		$found='yes';
		$scoreTmp=intval(rtrim($scoreTmp));
		$scoreTmp+=$score;
                                $arr[$index] =  "$nameTmp\t$scoreTmp\n";
	break;
	}
}
Помоему так.

Создать новую тему   Часовой пояс GMT +4, время: 09:34.
Быстрый переход
  « Предыдущая тема | Следующая тема »  

Ваши права в разделе
Вы не можете создавать новые темы
Вы не можете отвечать в темах
Вы не можете прикреплять вложения
Вы не можете редактировать свои сообщения

BB коды Вкл.
Смайлы Вкл.
[IMG] код Вкл.
HTML код Выкл.


 


Часовой пояс GMT +4, время: 09:34.


Copyright © 1999-2008 Flasher.ru. All rights reserved.
Работает на vBulletin®. Copyright ©2000 - 2026, Jelsoft Enterprises Ltd. Перевод: zCarot
Администрация сайта не несёт ответственности за любую предоставленную посетителями информацию. Подробнее см. Правила.