- 01
- 02
- 03
- 04
- 05
- 06
- 07
- 08
- 09
- 10
- 11
if (!is_array($arFilter))
$filter_keys = Array();
else
$filter_keys = array_keys($arFilter);
for ($i=0; $i<count($filter_keys); $i++)
{
$key = strtoupper($filter_keys[$i]);
$val = $arFilter[$filter_keys[$i]];
// ....
}
jokz 12.10.2011 20:34 # 0
bot-minurast 12.10.2011 23:25 # +1
Ничё, скоро RIW'11 - по выступлениям битриксоидов и узнаем...
чё им там выдают
nethak 14.10.2011 09:01 # 0
Я думаю начнут они выпускать ОС за 1.000.000 люди покупать будут, ведь такая цена, значит качество! И ведь это же 1С!
Lure_Of_Chaos2 14.10.2011 14:17 # −4
riactr 10.04.2013 15:12 # 0
«В любом языке программирования существуют так называемые идиомы, то есть повсеместно применяемые способы использования тех или иных конструкций. Например, в языке PHP к таким идиомам можно отнести форму записи цикла по элементам массива:
или
»
barbarbar 14.11.2014 07:49 # +2
guest 14.11.2014 09:33 # −3
Они б ещё Кайл добавили
guest 14.11.2014 09:33 # 0
barbarbar 14.11.2014 10:09 # 0
В чем проблема, напиши авторам пыха, чтобы фор и вайл убрали из языка, foreach же есть:)
guest 14.11.2014 11:50 # −1
bormand 14.11.2014 11:57 # +1
Есть там foreach по ссылке. Он, правда, немного ёбнутый. Но если знать про одну багофичу - вполне рабочий.
roman-kashitsyn 14.11.2014 11:58 # +1
Как ты будешь решать задачу "найти индекс минимального элемента в массиве", иксперт?
bormand 14.11.2014 13:32 # +1
foreach ([42,100500, 13] as $i => $v) вполне нормально обойдет все элементы массива. В $i будут индексы (0,1,2), в $v - значения (42,100500,13).
Правда порядок обхода может сбоить из-за того, что foreach обходит элементы в порядке их вставки в array.
roman-kashitsyn 14.11.2014 13:35 # 0
> PHP не знаю
inkanus-gray 14.11.2014 14:17 # 0
bormand 14.11.2014 14:21 # 0
Да можно и не создавать класс. Ибо они и на самом обычном array дают разные результаты.
Анонимус 14.11.2014 20:48 # 0
bormand 14.11.2014 21:03 # +1
Анонимус 14.11.2014 21:05 # +1
И только пых как всегда.
bormand 14.11.2014 21:11 # 0
Анонимус 14.11.2014 21:12 # 0
Анонимус 14.11.2014 20:47 # 0
barbarbar 14.11.2014 19:24 # 0
Боюсь, мартышка тут ты:(
kipar 14.11.2014 22:30 # 0
Анонимус 14.11.2014 22:39 # +1
1024-- 14.11.2014 22:40 # +1
P.S. Анонимус уже всё сказал.
Анонимус 14.11.2014 23:35 # +2
1024-- 14.11.2014 23:41 # 0
А вообще, за время срача полилога забываются предыдущие реплики, запоминаются только некоторые моменты из последней. Отвечаешь на эти моменты, тебе отвечают на твои моменты (а не на суть). И наступает момент, когда оглядываешь дерево комментариев целиком, а там безудержное БЕЗУМИЕ.
barbarbar 14.11.2014 23:30 # 0
С таким же успехом можно switch предложить запретить к использованию:(
Анонимус 14.11.2014 23:34 # 0
inkanus-gray 14.11.2014 23:41 # +1
Анонимус 14.11.2014 23:45 # +2
1024-- 14.11.2014 23:43 # 0
Анонимус 14.11.2014 23:46 # 0
чойто неизвестной? Я вот прогуляюсь до первого NULLа, и все узнаю.
Про итераторы см мой коммент выше
1024-- 14.11.2014 23:52 # 0
Тонкая грань. Если развивать дальше, то все массивы/списки/другие структуры данных имеют известную длину, но её иногда нельзя вычислить (вообще или за заданное время). И последнее слово будет за применимостью теории.
Анонимус 14.11.2014 23:55 # 0
--------
Ну вот вам педивикия:
In computer science, an array data structure or simply an array is a data structure consisting of a collection of elements (values or variables), each identified by at least one array index or key. An array is stored so that the position of each element can be computed from its index tuple by a mathematical formula.
Анонимус 15.11.2014 00:04 # 0
Сиречь не только со случайным доступом но и с константным временем доступа. Ну типа НачалоМассива+(РазмерЯчейки*Индекс)
Таким вот образом становица понятно что ни фибоначчи ни stdout тут нипричием
1024-- 15.11.2014 00:23 # 0
Задам я "НачалоМассива+(РазмерЯчейки*Индекс + [E^Индекс])" - и будет тот же массив, но жуть какой реееедкий.
Или задам "НачалоМассива+(РазмерЯчейки*[10*sin(Индекс)])" - тоже массив выйдет. Даже с бесконечной длиной.
А если слишком строгое определение сделать, массивы с выравниванием не попадут.
1024-- 15.11.2014 00:07 # 0
А известность длины char* - это уже либо проблемы производительности (хотим ли мы терпеть O(n)?) либо математические (я могу - и значит мне известно). Лично я склоняюсь к первому варианту (практическому), но окончательно от второго не отошёл.
Анонимус 15.11.2014 00:10 # 0
Я правильно понимаю что согласно Вашей точки зрения функцию "strlen" из string.h надо запретить?)))
ps: иногда можно хранить размер для скорости привет, паскаль. Знаете такие сигнатуры (char* str, int len) ?
1024-- 15.11.2014 00:16 # 0
Нет, не надо запрещать.
> ps: иногда можно хранить размер для скорости привет, паскаль.
Вот как раз надо использовать строки, которые хранят длину (или самим хранить), если длина вычисляется слишком медленно.
> Знаете такие сигнатуры (char* str, int len) ?
Некоторые такие знаю, но в них len - максимальная длина. Хотя, суть понял.
Анонимус 15.11.2014 00:20 # 0
Ну мне кажется что если человек пишет на plain c, то наверное он делает что-то ужасно низкоуровневое и специализированное, и порою может позволить себе не делать безопасных строк. Во всех остальных случаях (начиная от std::string ЕМНП и выше к java, c# и python/perl/ruby) всё и так хранит в себе длину.
guest 15.11.2014 00:21 # +2
Анонимус 15.11.2014 00:35 # 0
bot 15.11.2014 00:43 # 0
Анонимус 15.11.2014 00:58 # 0
1) Они должны быть максимально разными. Скучно когда ты пишешь однообразно.
2) Они должны быть такими, чтоб дух захватывало, а не унылыми.
3) Их должны понимать не многие, а только те, с кем ты совпал. Остальные должны считать их полной чушью.
barbarbar 14.11.2014 23:50 # 0
Давай запретим for и while, как предлагает достопочтимый гость.
А теперь, считай мне, пожалуйста, входные данные со stdin.
Анонимус 14.11.2014 23:53 # +1
>>Причем тут массив неизвестной длины?
Запрещать конечно же ничего не надо) Гость видимо имел ввиду что непонятно зачем использовать for, если есть foreach. Но товарищи выше объяснили уже что ввиду каши из массивов обычных и ассоциативных в PHP оба подхода нужны, так как for+count это гарантия обхода структуры как массива, а не как хеша.
Данные с stdin не имеют отношения к массиву.
Не нужно называть массивом все, по чему можно итерироваться.
barbarbar 15.11.2014 00:00 # 0
Цитировать меня ни к чему, форич может быть применен только к массиву (или объекту, реализовавшему интерфейс итератора), а вот для остального как раз и остались for и while, и их запрещать ну никак нельзя. Даже без банальных счетчиков можно остаться:)
1024-- 14.11.2014 23:54 # +1
Запретим while, добавим stdin на итераторах, будем гонять форычом по итераторам. В C++ так уже можно.
Или запретим while и оптимизируем хвостовую рекурсию...
barbarbar 14.11.2014 23:56 # 0
1024-- 14.11.2014 23:59 # 0
Анонимус 14.11.2014 23:58 # 0
guest8 09.04.2019 11:43 # −999