![]() |
0 Всего найдено: 28
freeproworks
Сообщение
27/07/2007 05:12
Копия темы
программисты php, помогите . Подскажите пожалуйста как нужно перебрать массив чтобы найти элеммент который присудтсвует во всех массивах пример: Array ( [0] => 2 ) Array ( [0] => 2 [1] => 3 ) Array ( [0] => 2 [1] => 3 [2] => 1 ) отсуда нужен только элемент «2». помогите плиз
Darx
Сообщение
27/07/2007 05:14
Копия темы
. Заводи еще один массив, содержащий эти массивы и перебирай его элементы.
freeproworks
Сообщение
27/07/2007 05:16
Копия темы
. я вот и не понимаю как это сделать. сижу уже несколько часов :(
freeproworks
Сообщение
27/07/2007 05:19
Копия темы
. нет, может быть так Array ( [0] => 2 [1]=>3 ) Array ( [0] => 2 [1] => 3 ) Array ( [0] => 2 [1] => 3 [2] => 1 ) т.е. 2,3 нужно
Darx
Сообщение
27/07/2007 05:26
Копия темы
. array_intersect(array1, array2, ...) можно вычислить схождение массивов. Результатом будет массив элементов, присутствующих в аждом из исходных )
pavlick
Сообщение
27/07/2007 05:36
Копия темы
. ничего не знаю, пишу я быстро, а перед постом твоего поста не было ) твой пост даже после моего идет ))) значит, ты спросил, чтобы точно удостовериться =))))
Darx
Сообщение
27/07/2007 05:37
Копия темы
. ага =)) те несколько твоих байт полетели на пару секунд раньше, чем мои ))))
freeproworks
Сообщение
27/07/2007 06:33
Копия темы
. Повторяться элементы не могут. они уникальные :)
freeproworks
Сообщение
27/07/2007 06:37
Копия темы
. а если я не знаю кол-во массивов? мне в начале нужно через цикл прогнать чтоли? т.е. у меня есть массив $aaa в нем n-кол-во массивов (скажем 10) :(
Darx
Сообщение
27/07/2007 06:42
Копия темы
. а, немного недопонял, тогда делай парный array_intersect в цикле
freeproworks
Сообщение
27/07/2007 06:43
Копия темы
. модет я туплю конечно, но не понимаю, а как я все массивы в array_intersect(array1, array2, ...) пропишу, если я не знаю их количество изначально :(
MolbO
Сообщение
27/07/2007 06:43
Копия темы
. если стандарты не устраивают то почему не завести новый hash, где ключи это значения элементов массива, а значения это количество (сколько раз встречалось) перебрал все массивы добавляя в hash, а потом отбирай ключи с нужным числом попаданий (в данном случае, со значением равным количеству массивов (3 в данном случае)) не нравится hash, сортанул массива(по возрастанию к примеру) нашел старший элемент из ar1[0] cmp ar2[0] cmp ar3[0] все младшие выкинул, если ничего не выкинул значит это тот элемент что тебе нужен запоминаешь и shift на все массивы(выкидываешь этот элемент у всех) муть конечно можно несколько оптимизировать но долго писать не нравится, слил все массивы в один, сортанул, проходишь весь массив ищешь цепочку одного и тогоже (просто ну уже лень писать) вообщем вариантов стоко сколько фантазии
Darx
Сообщение
27/07/2007 06:48
Копия темы
. перебирай массив, делай array_intersect попарно, предварительно запоминая результат. На следующей итерации делай интерсект уже с ним. Вот смотри: 1. $res = array_intersect($arr[1], $arr[2]); 2. $res = array_intersect($res, $arr[3]); 3. $res = array_intersect($res, $arr[4]); ... n-1. $res = array_intersect($res, $arr[n]);
saintist
Сообщение
27/07/2007 07:52
Копия темы
. через фореач рекурсивный обход многомерного массива делай, проверяй имя елемента массива и делай выборку
SSecurity
Сообщение
28/07/2007 10:55
Копия темы
0
На мой взгляд можно так . Если зачения только числовые сначала отсортируй, а затем перебирай, Можно сделать массив масиивов (аналог адаптированного варианта двумерного массива) Вариант 2: берем разделитель к примеру ` переводим все массивый к тексту ... т.е. Ar1str = '`2`' Ar2str = '`2`3`' Ar3str = '`2`3`1`' Потом находим самый короткий массив ... можно «короткий» массив выбрать по количеству элементов ... и запустить цикл на проверку самого короткого массива (поскольку если нет в коротком ... то без разницы есть ли в длинных или нет :) ) допустим Ar1str самый короткий, значит (структурно) ЦИКЛ ПО I ОТ 0 ДО Рамера(Ar1) ЕСЛИ (ВХОЖДЕНИЕ(В Ar2str, '`' + Ar1[I] + '`') не равно 0) И (ВХОЖДЕНИЕ(В Ar3str, '`' + Ar1[I] + '`') не равно 0) ТОГДА этот элемент есть во всех массивах СЛЕДУЮЩИЙ I это структурно .... для ПХП ... ВХОЖДЕНИЕ = StrStr вроде, не уверен не помню. С Уважением, Коротких Сергей |
Выразить восторг, поругаться или предложить что-нибудь можно на форуме |
Для обсуждения этого сервиса так же есть темы на фрилансе по поиску , флудотопу ,и по удалённым сообщениям ,и по Актуальным/популярным темам , и по топу "кто кому больше наотвечал" |