Разделение массива

Andykalinin

Новичок
Разделение массива

Ситуация такая, есть двухмерный массив, примерно 20 с лишним тысяч строк. В этом массиве есть блоки начинаются с набора символов из 3-х букв(для каждого раздела свой набор), а заканчиваются все одинаково. Вопрос в том, как мне выдернуть определенный болк, какими функциями пользрваться?
ЗЫ Не бейте ногами, я просто запутался...
 

Фанат

oncle terrible
Команда форума
в цикле перебираем массив и ищем нужные три буквы.
 

Andykalinin

Новичок
Ну это понятно. Но че-то я загнался, как сделать вывод всего блока. Между началом бока и концом примерно 25-30 строк.
А поиск делать strpos() ?
 

Фанат

oncle terrible
Команда форума
поиск делать substr
вывод блока делать просто.
выводим, если наши три буквы нужному блоку соответствуют
 

Andykalinin

Новичок
Делаю вот как
PHP:
for ($i=0; $i < $num; $i++)   {  
 for ($e=0; $e < 40; $e++)  {  $start=substr($equipo1[$w][$e], $club);  
echo $start;  }    
$w++;  }
$num - кол-во строк во всем массиве
$club - те самые три буквы начала блока
Здесь я пытался проверить начало блока, но таким образом выводится весь массив...
Что я делаю не так?

-~{}~ 29.11.04 20:06:

Блин ошибся
PHP:
for ($i=0; $i < $num; $i++)   {   for ($e=0; $e < 40; $e++)  {  $start=substr($equipo1[$i][$e], $club);  echo $start;  }   }
 

Andykalinin

Новичок
Ну как зачем ведь массив двухмерный, вот я и прверяю все элементы
 

Фанат

oncle terrible
Команда форума
а ты хорошо себе представляешь, что делает функция substr?
а в документации посмотреть?

а зачем массив двумерный?
откуда он такой берется?
а почему именно по 40 кусков разбит?
почему имен
 

Andykalinin

Новичок
По 40 это не я придумал, а так оно есть, ведь этот массив не я создаю. Вообще изначально он не двумерный, я его сам таким сделал, покольку в каждой строке куча инфы, которую надо разбить...
А вот с функцией я не очнь хорошо знаком, поэтому и спрашиваю...

-~{}~ 29.11.04 20:21:

Автор оригинала: asm
читайте мануал вьюнаша.
Я его почитал и не совсем разобрался, поэтому и спрашиваю, а такой ответ я и сам себе могу дать...
 

Фанат

oncle terrible
Команда форума
три буквы

-~{}~ 29.11.04 20:31:

Andykalinin
Давай так.
Ты или сам распутайся, или нас не путай.
Ты хоть понимаешь, что ПОКА ТЫ САМ НЕ ОПРЕДЕЛИШЬСЯ, что у тебя за массив, зачем он, и что у тебя в нем лежит - тебе НИКТО помочь не сможет?

20 000 строк - это где? это в первом измерении массива или всего?
первые 3 буквы - это до разбития или после?
ПОЧЕМУ ПО 40 элементов разбито - ты можешь ответить?

ПРИМЕР данных, на худой коней, если словами совсем невмоготу рассказать - можешь привести?
 

asm

Пофигист
Фанат
не удивлюсь что и впрям так :)

-~{}~ 29.11.04 19:33:

Пример хотя бы одного элемента массива :)
 

Andykalinin

Новичок
Каждый блок начинается примерно так
/Abe/
далее идет несколько (16-25) строк такого вида
/1/Имя/национальность/позиция/23/57/34/89/95/34/99/3735/21/20/20/20/20/20/35/20/34/40/27/0/0/1/7/0/12/0/567/62/72/0/0/0/0///
И заканчивется блок
/999/
Все это я рзбиваю таким образом
PHP:
$equipo1[$w]=explode("/", $f[$i]);
Вот так и получается двумерный массив
 

asm

Пофигист
PHP:
for ($i=0; $i < $num; $i++)   {
    if ($equipo1[$i][1] == $club)
        for ($e=0; $e < 40; $e++)  {   echo $equipo1[$i][$e];  } 
}
так нельзя?
вот так лучше...
 

Andykalinin

Новичок
Автор оригинала: asm
for ($i=0; $i < $num; $i++) {
if ($equipo1[$w][1] == $club)
for ($e=0; $e < 40; $e++) {
echo $start; }
$w++; }
так нельзя?
Но ведь так выведу только первые символы массива...
ЗЫ Для меня самое главное - это как выделить именно нужный блок...
 

asm

Пофигист
либо я не догоняю либо ты плохо обьясняешь. Одно из двух... :)

-~{}~ 29.11.04 20:07:

Автор оригинала: Andykalinin
Но ведь так выведу только первые символы массива...
ЗЫ Для меня самое главное - это как выделить именно нужный блок...
а вот это все твои 40...

-~{}~ 29.11.04 20:08:

PHP:
for ($i=0; $i < $num; $i++)   { 
    if ($equipo1[$i][1] == $club) 
        for ($e=0; $e < count($equipo1[$i]); $e++)  {   echo $equipo1[$i][$e];  } 
}
 
Сверху