![]() |
Модераторы: skyboy, MoLeX, Aliance, ksnk |
![]() ![]() ![]() |
|
SeregaGREY |
|
||||
Шустрый ![]() Профиль Группа: Участник Сообщений: 108 Регистрация: 28.7.2006 Репутация: нет Всего: 0 |
Вот пишу скрипт работающий с файлом вида:
написал вот это:
Вот оно мне выводит всё что в столбце #2. а как мне не выводить это содержимое а сложить? И ещё как сложить только те строки в столбце #2, которые имеют в столбце #4 слово "круто"? |
||||
|
|||||
s0lman |
|
||||||||
![]() Белый и лохматый ![]() ![]() Профиль Группа: Участник Сообщений: 637 Регистрация: 1.11.2007 Где: Ukraine Репутация: 9 Всего: 29 |
Как вариант - объявить массив
а извлекать числовое значения для суммирования так
Добавлено через 3 минуты и 4 секунды
Дополнительная проверка
-------------------- Когда я уже выучусь на волшебника? :( |
||||||||
|
|||||||||
SeregaGREY |
|
|||
Шустрый ![]() Профиль Группа: Участник Сообщений: 108 Регистрация: 28.7.2006 Репутация: нет Всего: 0 |
непонял. где тут суммирование значений второго столбца?
|
|||
|
||||
Ипатьев |
|
|||
Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 2232 Регистрация: 5.7.2009 Репутация: 28 Всего: 37 |
SeregaGREY, а каков результат сложения? одинодинодин?
|
|||
|
||||
s0lman |
|
|||
![]() Белый и лохматый ![]() ![]() Профиль Группа: Участник Сообщений: 637 Регистрация: 1.11.2007 Где: Ukraine Репутация: 9 Всего: 29 |
Ипатьев, внимательно читайте условие: двадвадва
![]() -------------------- Когда я уже выучусь на волшебника? :( |
|||
|
||||
NLspieler |
|
||||||
![]() Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 619 Регистрация: 13.10.2008 Где: Берлин Репутация: 16 Всего: 19 |
Твой код:
Функцию count($data) в заголовке цикла лучше не использовать. Нужно писать так:
А еще лучше для таких ситуаций использовать цикл foreach Это сообщение отредактировал(а) NLspieler - 29.7.2009, 10:42 |
||||||
|
|||||||
s0lman |
|
|||
![]() Белый и лохматый ![]() ![]() Профиль Группа: Участник Сообщений: 637 Регистрация: 1.11.2007 Где: Ukraine Репутация: 9 Всего: 29 |
Вот здесь ни разу не согласен намного лучше в данной ситуации ![]() -------------------- Когда я уже выучусь на волшебника? :( |
|||
|
||||
NLspieler |
|
|||
![]() Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 619 Регистрация: 13.10.2008 Где: Берлин Репутация: 16 Всего: 19 |
||||
|
||||
fesor |
|
|||
![]() Шустрый ![]() Профиль Группа: Участник Сообщений: 121 Регистрация: 16.7.2009 Где: Минск Репутация: 4 Всего: 4 |
foreach медленнее чем for)) и жрет больше памяти)
|
|||
|
||||
s0lman |
|
|||
![]() Белый и лохматый ![]() ![]() Профиль Группа: Участник Сообщений: 637 Регистрация: 1.11.2007 Где: Ukraine Репутация: 9 Всего: 29 |
Быстродействие.
Не вижу смысла его использовать для индексных массивов, тем более, если значения ключей имеют последовательные значения, без пропусков. Добавлено через 59 секунд fesor, долго я печатал )) -------------------- Когда я уже выучусь на волшебника? :( |
|||
|
||||
NLspieler |
|
||||
![]() Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 619 Регистрация: 13.10.2008 Где: Берлин Репутация: 16 Всего: 19 |
В PHP4 да, в PHP5 он напротив быстрее и жрет нисколько не больше памяти. Да и писать
гораздо быстрее чем
Кстати, такая тема уже обсуждалась http://forum.vingrad.ru/forum/topic-258847.html |
||||
|
|||||
nerezus |
|
|||
![]() Вселенский отказник ![]() ![]() ![]() ![]() Профиль Группа: Участник Сообщений: 3330 Регистрация: 15.6.2005 Репутация: 12 Всего: 43 |
|
|||
|
||||
Ипатьев |
|
|||
Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 2232 Регистрация: 5.7.2009 Репутация: 28 Всего: 37 |
Дж.Свифт, "Путешествия Гулливера" |
|||
|
||||
SeregaGREY |
|
||||||||
Шустрый ![]() Профиль Группа: Участник Сообщений: 108 Регистрация: 28.7.2006 Репутация: нет Всего: 0 |
спасибо! всё красиво разъяснил! |
||||||||
|
|||||||||
nerezus |
|
|||
![]() Вселенский отказник ![]() ![]() ![]() ![]() Профиль Группа: Участник Сообщений: 3330 Регистрация: 15.6.2005 Репутация: 12 Всего: 43 |
|
|||
|
||||
s0lman |
|
|||
![]() Белый и лохматый ![]() ![]() Профиль Группа: Участник Сообщений: 637 Регистрация: 1.11.2007 Где: Ukraine Репутация: 9 Всего: 29 |
В общем, провел несколько опытов.
Для опыта использовал индексный массив из 100 тыс. элементов. В первой части опыта просто получал доступ к значению каждого элемента, а во второй уже выполнял действия с самими элементами массива. Результаты меня немного удивили. В первой части опыта foreach и for с переменным успехом опережали друг друга, с чего можно сделать вывод, что их использование примерно одинаковое по производительности, но цикл foreach гораздо удобнее использовать. Признаю свою ошибку выше ;) Во второй части опыта, как и ожидалось, foreach показал очень низкий результат, что не располагает к его использованию в подобных ситуациях. З.Ы. Результаты опыта у меня примерно такие:
З.З.Ы. На случай, если кто захочет проверить, прилеплю свой гениальный код ![]() Присоединённый файл ( Кол-во скачиваний: 8 ) ![]() -------------------- Когда я уже выучусь на волшебника? :( |
|||
|
||||
Ипатьев |
|
|||
Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 2232 Регистрация: 5.7.2009 Репутация: 28 Всего: 37 |
В подобных - это в каких? В циклах на сто тыщ итераций? Соглашусь. Для 0,00001% программ, где требуется такое количество оборотов, данная рекомендация будет иметь смысл. Впрочем, только в том случае, если этот цикл ничего, кроме присваивания не делает. В реальности, когда мы тестируем не сферический цикл в вакууме (чем повально улекаются все борцы за скорость), кроме получения и записи данных в массив, существует хоть какая-то их обработка - например, регулярным выражением. И какая разница будет этом случае, и имеет ли смысл на нее обращать внимание - отдельный вопрос. Но я понимаю. Если исследовать реальные задачи, а не высосанные из пальца, тогда и подискутировать будет не о чем, и цифры, поражающие воображение некому показать будет. Это сообщение отредактировал(а) Ипатьев - 29.7.2009, 22:40 |
|||
|
||||
s0lman |
|
|||
![]() Белый и лохматый ![]() ![]() Профиль Группа: Участник Сообщений: 637 Регистрация: 1.11.2007 Где: Ukraine Репутация: 9 Всего: 29 |
В случаях изменения значения элементов массива ![]() -------------------- Когда я уже выучусь на волшебника? :( |
|||
|
||||
Ипатьев |
|
|||
Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 2232 Регистрация: 5.7.2009 Репутация: 28 Всего: 37 |
У автора топика этих элементов будет максимум сотня. Стоит ли разница в скорости на таком количестве итераций потраченного времени на обсуждение и тесты?
Неужели не стыдно преподносить всю эту ерунду, как чудесные озарения, проливающие свет на всю дальнейшую профессиональную деятельность? |
|||
|
||||
nerezus |
|
|||
![]() Вселенский отказник ![]() ![]() ![]() ![]() Профиль Группа: Участник Сообщений: 3330 Регистрация: 15.6.2005 Репутация: 12 Всего: 43 |
|
|||
|
||||
s0lman |
|
|||
![]() Белый и лохматый ![]() ![]() Профиль Группа: Участник Сообщений: 637 Регистрация: 1.11.2007 Где: Ukraine Репутация: 9 Всего: 29 |
Ипатьев, я вас не совсем понимаю. Если вам проще написать более удобный код вместо чуть более эффективного, я не пытаюсь вас переубеждать
![]() Можно также полагаться на мощь серверов, для которых сэкономленные ресурсы не сыграют особой роли... С другой стороны некоторые рекомендуют использовать одинарные кавычки для вывода текста. В нашем же случае с циклами, думается, разница в быстродействии более заметна. Большое количество элементов взял для большей точности вычислений. В итоге, как видим, при изменении массива цикл foreach почти втрое медленней for. -------------------- Когда я уже выучусь на волшебника? :( |
|||
|
||||
nerezus |
|
|||
![]() Вселенский отказник ![]() ![]() ![]() ![]() Профиль Группа: Участник Сообщений: 3330 Регистрация: 15.6.2005 Репутация: 12 Всего: 43 |
|
|||
|
||||
Ипатьев |
|
|||
Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 2232 Регистрация: 5.7.2009 Репутация: 28 Всего: 37 |
Дело в том, что относительные цифры ("в полтора раза") не значат ничего. Многие люди этого не понимают. Ведро воды больше, чем стакан? В 50 раз. А в масштабе мирового океана это имеет хоть какое-то значение? Или хотя бы в масштабе бассейна?
И не надо мне тыкать ресурсами. Ресурсы экономят не на кавычках. |
|||
|
||||
icewind |
|
|||
Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 393 Регистрация: 11.4.2009 Где: Ростов-на-Дону Репутация: 20 Всего: 20 |
Согласен с Ипатьев.
Особенно если оперировать придется максимум наперстками... -------------------- ![]() |
|||
|
||||
SeregaGREY |
|
|||
Шустрый ![]() Профиль Группа: Участник Сообщений: 108 Регистрация: 28.7.2006 Репутация: нет Всего: 0 |
а как теперь можно не только складывать значения в столбцах, но и умножать значения в строках применительно к вашему скрипту?
то есть например: 1|2|3|круто 1|2|3|некруто 1|2|3|круто в строках умножить 1ое и 3е значения и сложить все эти умнождения? 1*3 +1*3+1*3 = 9
|
|||
|
||||
Ипатьев |
|
|||
Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 2232 Регистрация: 5.7.2009 Репутация: 28 Всего: 37 |
Вот, кстати, о пользе написания готовых скриптов.
Казалось бы, простейшая операция - умножение. И, наверняка, если бы автор вопроса написал код сам, и понимал значение используемых в нем переменных, то с легкостью смог бы их перемножить. А поскольку для него код - абракадабра, то даже с таким простым вопросом идет за помощью на форум. SeregaGREY, твои значения лежат в массиве $yacheiki. Неужели ты не можешь перемножить две переменные? |
|||
|
||||
SeregaGREY |
|
|||
Шустрый ![]() Профиль Группа: Участник Сообщений: 108 Регистрация: 28.7.2006 Репутация: нет Всего: 0 |
$otwet += $yacheiki[1] *$yacheiki[3]; так? |
|||
|
||||
Ипатьев |
|
|||
Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 2232 Регистрация: 5.7.2009 Репутация: 28 Всего: 37 |
Примерно. Только элементы в массиве нумеруются с нуля, а значит должно быть
|
|||
|
||||
s0lman |
|
|||
![]() Белый и лохматый ![]() ![]() Профиль Группа: Участник Сообщений: 637 Регистрация: 1.11.2007 Где: Ukraine Репутация: 9 Всего: 29 |
<offtop> Чем-то мне Ипатьев напоминает Фельдмаршала ![]() </offtop> -------------------- Когда я уже выучусь на волшебника? :( |
|||
|
||||
bars80080 |
|
|||
![]() прапор творюет ![]() ![]() ![]() ![]() Награды: 1 Профиль Группа: Завсегдатай Сообщений: 12022 Регистрация: 5.12.2007 Где: Königsberg Репутация: 71 Всего: 315 |
однако, это не он, ибо повторил ту же ошибку. вначале добрый, а потом потихоньку приходит понимание, что вопрошающий часто не ищет знаний, а просто ищет ответ на вопрос, чтобы наконец сдать растреклятую лабу, и нафиг оно ему больше не нужно |
|||
|
||||
![]() ![]() ![]() |
Правила форума "PHP" | |
|
Новичкам:
Важно:
Внимание:
Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, IZ@TOP, skyboy, SamDark, MoLeX, awers. |
1 Пользователей читают эту тему (1 Гостей и 0 Скрытых Пользователей) | |
0 Пользователей: | |
« Предыдущая тема | PHP: Общие вопросы | Следующая тема » |
|
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности Powered by Invision Power Board(R) 1.3 © 2003 IPS, Inc. |