Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: przetworzenie ciagu znakow do tablicy z wynikami
Forum PHP.pl > Forum > Przedszkole
REN
witam

potrzebuje przykladowy ciag "xyzxyzabcabbcabbbcxyzxyz" przetworzyc do postaci tablicy:
[1] = abc
[2] = abbc
[3] = abbbc

jak to uczynic?

dziekuje za rzeczowe odpowiedzi
dr_bonzo
A wg. jakich regol? Co wyroznia/oddziela te ciagi ktore chcesz wyciagnac?
php programmer
jeśli dobrze zrozumiałem jak trafi na literę a to ma być następny element tablicy, czyli:
  1. <?
  2. $string = "xyzxyzabcabbcabbbcxyzxyz";
  3. $string = explode('a',$string);
  4. ?>

a ponieważ poucinało literę "a" ze względu na jej separatorski charakter
dokładamy literę "a" na początku każdej tablicy
  1. <?
  2. for($i=0;$i<count($string);$i++) $string[$i] = 'a'.$string[$i];
  3. ?>

dodatkowo trzeba zignorować pierwszy i ostatni element powstałej tablicy
ponieważ elementy te zawierają ciąg "xyzxy"
(można do tego użyć specjalnych funkcji operujących na tablicach.)
Gość_REN
witam

Generalnie pisze skrypt ktory pobiera strone z internetu ktora zawiera tabele z danymi po czym odczytuje te dane i umieszcza w tablicach lub jednej tablicy dwuwymiarowej do dalszego przetworzenia.

Przyklad ktory przytoczylem w pierwszym poscie ma sie do tego tak:
- xyz to poczatek i koniec strony ktory nie zawiera zadnych istotnych danych i nas absolutnie nie internesuje
- abcabbaabbbc to kolejne wiersze tabeli z rozna zawartoscia (b lub bb lub bbb itd.) ale zaczynajace sie od <tr> (aka a) oraz konczace sie na </tr> (aka cool.gif

Ja do tej pory probowalem cos zdzialac przy pomocy eregi ale chyba ta funkcja dziala troche odmiennie niz sie spodziewalem.
Wiec wydumalem, ze zrobie to tak ze:
- obetne poczatek lancucha az do pierwszego wystapienia <tr>
- obetne koniec lancucha az do ostatniego wystapienia </tr>
- pozostaly lancuch podziele funkcja split wedlug klucza "<tr.*></tr>"

Pozniej to samo trzeba zrobic z komorkami tablicy.

Czy dobrze rozumuje?
DeyV
Twój początkowy przyklad nijak sie ma do Twojego problemu winksmiley.jpg

Wydaje mi się jednak, że w takim przypadku explode nei sprawdzi sie zbyt dobrze.

Ja takie rzeczy zawszę robię przy pomocy pregów. Choć, fakt, faktem, czasem wymaga to posiedzenia nad odpowiednimi wyrażeniami, i wogóle - nauczenia się wyrażeń regularnych, ale jest to bardzo dobra "inwestycja".
REN
dobra niewazne, kwestia spojrzenia na sprawe czy przyklad sie ma czy nie ma

ja myslalem o uzyciu funkcji split wlasnie ze wzgledu na mozliwosc skorzystania z wyrazen regularnych ale jako ze jestem "leszczem php" chcialem Was prosic o jakies wskazowki jak ugrysc ten temat
To jest wersja lo-fi głównej zawartości. Aby zobaczyć pełną wersję z większą zawartością, obrazkami i formatowaniem proszę kliknij tutaj.
Invision Power Board © 2001-2025 Invision Power Services, Inc.