| imho.ws |
![]() |
|
|
|
# 21 |
|
Junior Member
Регистрация: 08.10.2003
Сообщения: 98
![]() |
Мда, я просто увидев ${"year[$i]"}, сразу подумал (и ответил) что нужно (или по крайней мере желательно) выносить "сложные" конструкции переменных (а-ля $c->var, $a['var'] ) из строки, пхп не во всех слуйчаях их коректно находит.
Тот что я запостил у меня работает на ура (и выдайёт то же что и твой пост. А вообще конечно ты прав на все 100% что там вообще ненужна никакая ${}. Добавлено через 3 минуты: Да и вообще имхо удобнее, правильнее и бысрее (по выполнению) общаться к переменным имя которой в строке через $_GLOBALS[$myvar] а не ${$myvar}. Заодно и путаницы с массивами не будет (ну или по крайней мере не должно быть).
Последний раз редактировалось mmaaxx; 05.04.2004 в 17:42. |
|
|
|
|
# 23 |
|
Junior Member
Регистрация: 08.10.2003
Сообщения: 98
![]() |
Neo
Когда не знаешь точного названия переменной: Не нужно: ${"var1"} , проще и быстрее $var1 Нужно: ${"my_".$i."_var"} , сдесь мы не знаем названия переменной и поэтому юзаем ${} (но правильнее в таких слуйчаях (как было сказаны выше) использовать массив типа $my_var[$i]). Просто вместо ${"my_".$i."_var"}, с таким-же успехом можно использовать $_GLOBALS["my_".$i."_var"] (массив через который можно доступиться ко всем переменным. Для наявность можешь сделать: echo "<pre>"; print_r($_GLOBALS); echo "</pre>"; Последний раз редактировалось mmaaxx; 05.04.2004 в 19:06. |
|
|
|
|
# 24 |
|
сошел
Регистрация: 03.06.2002
Сообщения: 662
![]() ![]() ![]() ![]() |
а не проще использовать формулу?
$yr_min=2003 $yr_max=2xxx $sum=($yr_max^2+$yr_max-$yr_min^2-$yr_min)/2 или $sum=($yr_max-$yr_min)*($yr_max+$yr_min+1)/2 арифметическая прогрессия... Последний раз редактировалось Gike; 05.04.2004 в 19:23. |
|
|
|
|
# 26 | |
|
Member
Регистрация: 02.05.2003
Адрес: Бельгия
Сообщения: 201
![]() |
Цитата:
Во-вторых, вместо переменных $year200x -я бы использовал массив. Так и писать и поддерживать код намного проще. В остальном.. да тут и не так много кода (; Да.. а ошибку подобную сообщению от 05-04-2004 01:08 я комментировал в своём ответе от 04-04-2004 00:27. Последний раз редактировалось sky7; 05.04.2004 в 22:39. |
|
|
|
|
|
# 27 | ||
|
Full Member
Регистрация: 05.02.2002
Адрес: Underground
Сообщения: 2 110
![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() |
Цитата:
Цитата:
![]() Добавлено через 4 минуты: а как получить значение последнего элемента массива? |
||
|
|
|
|
# 28 | |
|
Member
Регистрация: 02.05.2003
Адрес: Бельгия
Сообщения: 201
![]() |
Цитата:
|
|
|
|
|
|
# 31 |
|
Full Member
Регистрация: 05.02.2002
Адрес: Underground
Сообщения: 2 110
![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() |
mmaaxx
зачем - смотри здесь: http://shabash.dreamsee.ru/xron.html - блок навигации по выпускам. для красоты, короче. ![]() sky7 А чего, тут без меня пиво пьют? Нее я не согласен. Щас ваще уйду в монастырь .mmaaxx ![]() Добавлено через 3 минуты: Ах да, я же забыл зачем пришел. Как сложить ВСЕ значения ВСЕХ ключей массива? Добавлено через 7 минут: А знаю вот так foreach ($years as $temp) $total_currnum += $temp; |
|
|
|
|
# 32 |
|
Junior Member
Регистрация: 08.10.2003
Сообщения: 98
![]() |
Neo
sky7 ![]() Neo Ты наверно имел введу ссумировать все значения масива (массив: $array[$key]=>$value), поскольку ключи сумируют так: if(!empty($a)) foreach($a as $key=>$value) $key_sum+=$key; Не забываем про проверку на пустоту, поскольку foreach будет ругаться, если масив пустой. |
|
|
|
|
# 38 |
|
Member
Регистрация: 02.05.2003
Адрес: Бельгия
Сообщения: 201
![]() |
Neo
Так с формулой эффективнее. Если куда можно формулу какую впихнуть - намного быстрей прога работает, чем то-же самое циклами вычислять. Представь, что у тебя накопилось 10 000 выпусков, что-б их пересчитать, ты используешь цикл ( по 14 ) с одним арифметическим действием. Итого: (10 000/*выпусков*/ / 14/*в год*/) /*циклов*/ * 1 /*действие*/ ~= 80 /*операциям */ А формулой - у тебя 4 операции, не зависимо от количества выпусков. Разница в этом примере - 20 раз, а чем больше выпусков - тем больше разница. А после этого представь что у тебя бешенная посещаемоть( скажем 1000 человек в минуту запрашивают этот скрипт ) и прикинь насколько разной будет нагрузка на сервер. Добавлено через 1 минуту: Я не говорю, что та или иная формула подходит в этом конкретном примере - это сам думай... но если можно что-то посчитать формулой - то лучше так и сделать Добавлено через 1 минуту: mmaaxx И снова одинаково отвечаем Ну и впрямь у моряков мысли сходятся
|
|
|
|
|
# 39 |
|
::VIP::
Регистрация: 27.01.2004
Адрес: Россия. Барнаул
Пол: Male
Сообщения: 417
![]() ![]() ![]() |
а почему все решили что сумма аривметической прогрессии сложная формула?
если мне не изменяет память, то S(n) = (a1 + an)*n/2 или a1 + d*(n - 1)/2 a1 - первый член последовательности, an - последний. d - разность.
__________________
Nunc est bibendum |
|
|