Explode

Z PHPEdia.pl
Skocz do: nawigacji, wyszukiwania

Rozbijanie ciągów znaków, Łączenie tablic w ciągi znaków - funkcje explode(), split(), implode()

W PHP mamy możliwość rozbijania ciągów znaków na tablice z których później łatwiej jest nam pobierać różnego rodzaju dane. Istnieje również odwrotna funkcja która łączy tablice w ciągi znaków.




Rozbijanie ciągów - funkcja explode()

Funkcja explode() pozwala nam na rozbicie, rozdzielenie ciągu znaków. Funkcja ta przyjmuje dwa parametry wymagane i jeden parametr opcjonalny. Jako pierwszy podaje się znak albo ciąg znaków według których ma zostać podzielony ciąg na elementy tablicy a jako drugi parametr podaje się ciąg znaków który ma zostać podzielony na tablice. Opcjonalnie można dodać trzeci parametr do funkcji explode() służący do zdefiniowania na ile elementów maksymalnie może zostać podzielony ciąg znaków, więcej o tym parametrze w dalszej części artykułu.

Przykład 1:

<?php
	$strExample = 'To|jest|przykladowy|ciag|znakow|gdzie|kazdy|wyraz|jest|oddzielony';
 
	$arrResult = explode('|', $strExample);
?>

Powyższy zapis spowoduje rozbicie tekstu ze zmiennej "$strExample" do tablicy "$arrResult", tekst zostanie podzielony według znaku "|" (pionowa kreska) na poszczególne elementy tablicy. Do każdego elementu tablicy odwołujemy się w następujący sposób:

<?php
(...) // kod z pierwszego przykładu.
echo $arrResult[0];
?>

Wynik działania:

To

Poniższy przykład wyświetli nam wszystkie elementy tablicy, od nowej linii każdy element:

<?php
(...) // kod z pierwszego przykładu.
foreach ($arrResult as $strKey => $strValue)
{
	echo $strValue.'<br />';
}
?>

Wynik działania:

To
jest
przykladowy
ciag
znakow
gdzie
kazdy
wyraz
jest 
oddzielony

Przykład 2:

<?php
	$strExample = 'To|jest|przykladowy|ciag|znakow|gdzie|kazdy|wyraz|jest|oddzielony';
 
	$arrResult = explode('|', $strExample, 5);
?>

W powyższym przykładzie pokazane jest zastosowanie trzeciego opcjonalnego parametru funkcji explode(). Jak już pewnie każdy zauważył w pierwszym przykładzie nasz ciąg znaków został podzielony na dziesięć elementów tablicy, czasami jednak zachodzi potrzeba wyciągnięcia tylko kilku ważnych informacji z początku ciągu a reszta jest już mniej ważna, z pomocą nadchodzi nam trzeci (opcjonalny) parametr funkcji explode(), określa on na ile elementów maksymalnie może zostać podzielony ciąg znaków. Zaraz pewnie zapytał by się ktoś "a co z resztą ciągu, która nie została podzielona?", odpowiedź jest bardzo prosta reszta ciągu jest umieszczana w ostatnim elemencie naszej tablicy, czyli jak w przykładzie drugim zapisaliśmy, ze chcemy tylko pięć elementów tablicy to w piątym elemencie znajdzie się reszta ciągu.


Poniższy przykład wyświetli nam wszystkie elementy tablicy, od nowej linii każdy element:

<?php
(...) // kod z drugiego przykładu.
foreach ($arrResult as $strKey => $strValue)
{
	echo $strValue.'<br />';
}
?>

Wynik działania:

To
jest
przykladowy
ciag
znakow|gdzie|kazdy|wyraz|jest|oddzielony

Teraz pewnie już każdy wie jak rozdzielać ciągi znaków za pomocą funkcji explode(), w temacie artykułu napisałem jeszcze o funkcji split(), ta funkcja jest rozszerzeniem funkcji explode(). Funkcja split() rozdziela ciągi znaków do tablic za pomocą wyrażeń regularnych. Więcej na temat wyrażeń regularnych można znaleźć na podstronie phpedii "Co to są wyrażenia regularne i do czego służą?"




Łączenie elementów tablicy w ciąg znaków - funkcja implode()

Wszystko piękne ale co mamy zrobić gdy mamy tablice a potrzebujemy ciąg znaków? Z pomocą przybywa nam funkcja implode(). Funkcja ta przyjmuje dwa parametry, jako pierwszy podaje się znak albo ciąg znaków i właśnie za pomocą tego pierwszego parametru zostanie poskładany ciąg znaków z elementów tablicy, jako drugi parametr podaje się tablice która ma zostać złożona w ciąg znaków.

Przykład 1:

<?php
	$arrExample = array('To', 
			    'jest', 
			    'przykladowy', 
			    'ciag', 
			    'znakow', 
			    'gdzie', 
			    'kazdy', 
			    'wyraz', 
			    'jest', 
			    'oddzielony'
		          );
 
	$strResult = implode('|', $arrExample);
?>

W powyższym przykładzie poskładaliśmy z elementów tablicy ciąg znaków za pomocą funkcji implode() i przypisaliśmy wynik tego składania do zmiennej "$strResult".

Po wyświetleniu zmiennej "$strResult" na ekranie zobaczymy:

To|jest|przykladowy|ciag|znakow|gdzie|kazdy|wyraz|jest|oddzielony

--Pepe 15:38, 6 maj 2008 (UTC)