[ Поиск ] - [ Пользователи ] - [ Календарь ]
Полная Версия: Вывод диапазона из массива
iGusse
Всем привет!
Есть цикл который проходится по строкам и определяет принадлежит ли строка определенному формату (заголовок, цена и т.д.) если строка принадлежит формату то выводится ее порядковый номер в массив:
[row] => Array
(
[
0] => 1
[1] => 8
[2] => 13
[3] => 18
[4] => 26
)


теперь ворос:
мне нужно вывести остальные стоки основываясь на данные полученые из этого массива с диапазоном между двумя соседними значениями.
нужно получить вот такой вывод:

 => Array
(
[
0] => 2
[1] => 3
[2] => 4
[3] => 5
[4] => 6
[5] => 7
)

=>
Array
(
[
0] => 9
[1] => 10
[2] => 11
[3] => 12
)
=>
Array
(
[
0] => 14
[1] => 15
[2] => 16
[3] => 12
)
........


второй день уже парюсь ничего не призодит в голову




Спустя 6 минут, 12 секунд (2.03.2011 - 10:59) Evilsoul написал(а):
for($i=0; $i < count($row); $i++)
{
$diff = $row[$i] - $row[$i+1];
}

Разницу получили, сейчас дальше подумаю, нужно отойти

Спустя 3 минуты, 45 секунд (2.03.2011 - 11:03) Invis1ble написал(а):
array_diff($array1array, $array2array);

Спустя 19 минут, 27 секунд (2.03.2011 - 11:22) Evilsoul написал(а):
так у него же нет другого массива...

for($i=0; $i < count($row); $i++)
{
$diff[] = $row[$i] - $row[$i+1];
$new_arr[$i] = array();

while($row[$i]++ < $diff[$i])
$new_arr[] = $row[$i];
}


Попробуй, не уверен что сработает, а проверить у меня сейчас не где...

Спустя 3 минуты, 45 секунд (2.03.2011 - 11:26) Invis1ble написал(а):
Evilsoul
Как нет?
Первым аргументом - исходный массив, вторым - сформированный массив (который по "определенному формату" формируется). На выходе - разница

Спустя 4 минуты, 35 секунд (2.03.2011 - 11:30) Evilsoul написал(а):
Invis1ble
Ничего не понимаю...
Я так понял что у него есть один массив сформированный из строк
[row] => Array
(
[
0] => 1
[1] => 8
[2] => 13
[3] => 18
[4] => 26
)

и всё...
пускай автор что-то напишет, а то молчит как партизан :)

Спустя 5 минут, 8 секунд (2.03.2011 - 11:35) Invis1ble написал(а):
Evilsoul
Да, ты прав, это я что-то нафантазировал себе насчет исходного массива ) Сказывается регулярное недосыпание. Вот и сейчас сижу, а спать еще со вчера не ложился =)

ТС! Ты чего молчишь там? )
Откуда вобще данные изначально берутся?
Может легче будет сделать моим способом?
Вобще, по твоему тут экстрасенсы сидят, тихо меж собой общаются, а ты смотришь и ждешь пока тебе полностью код рабочий напишут? ))

Спустя 5 минут, 4 секунды (2.03.2011 - 11:41) Evilsoul написал(а):
Invis1ble
Ты чего, нельзя так себя насиловать biggrin.gif иди спать ложись smile.gif))

Спустя 3 часа, 19 минут, 38 секунд (2.03.2011 - 15:00) Guest написал(а):
))) Сорри всем за задержку, бы в универе)))
В общем данные берутся и Excel файла. Проще хз как. Я выбираю все строки с заголовками. Потом мне нужно получить информацию между этими строками.
Для этого мне надо получить номер строки после заголовка и номер перед следующим заголовком. Строки с заголовками приходят в массив
[row] => Array
(
[
0] => 1
[1] => 8
[2] => 13
[3] => 18
[4] => 26
)


Могу вечером перь парсер скинуть может кому пригодится

Спустя 1 минута, 7 секунд (2.03.2011 - 15:01) iGusse написал(а):
Это я был)) незалогинившийся

Спустя 8 часов, 47 минут, 51 секунда (2.03.2011 - 23:49) Invis1ble написал(а):
iGusse
Ну значит наверно все-таки есть исходный массив, который получается сразу после парсинга.. Тогда array_diff() - самое оно.
Кстати, какой формат файла и какой парсер юзаешь?

Спустя 3 дня, 11 часов, 49 минут, 54 секунды (6.03.2011 - 11:39) iGusse написал(а):
Сорри, что долго не было. В общем выкладываю парсер. Может можно изменить формат прайса как-то, чтобы удобнее было парсить, может добавить артикулы?

Спустя 54 минуты, 51 секунда (6.03.2011 - 12:34) Invis1ble написал(а):
iGusse
чесно говоря, особо нет времени разбираться с кодом...
Вобщем можно сделать примерно следующее:
берешь так сказать общий массив (со всеми данными после чтения файла) и из него вычитаешь с помощью array_diff() массив row. Как-то так....
Быстрый ответ:

 Графические смайлики |  Показывать подпись
Здесь расположена полная версия этой страницы.
Invision Power Board © 2001-2024 Invision Power Services, Inc.