Exploding array in php

Работа функции PHP Explode

В этой небольшой статье пойдёт разговор о двух функциях, которые используются довольно часто: explode() и implode() .

PHP explode() применяется при разбиении строки на несколько частей, когда само разделение осуществляется по конкретному разделителю.

Синтаксис у explode() довольно прост:

 
list explode(string separator, string str1, int limit) 

В приведённом примере осуществляется передача строки str1. Здесь функция ищет разделитель separator, разбивая по нему строку. Когда указан параметр limit, разбиение происходит на limit слов.

Для наилучшего понимания работы, следует рассмотреть более подробный пример:

 
php $stroka = "Bob|Tom|John|Alex|Andrey"; $names = explode("|", $stroka); foreach ($names as $name) echo "$name "; // выведутся все имена $newNames = explode("|", $stroka,3); echo "
"
; foreach ($newNames as $name) echo "$name *"; // строка разобьётся на три слова ?>

Здесь важно не допустить ошибки в порядке следования аргументов. Ещё в роли разделителя может выступать как одиночный символ, так и целая строка (зависит от того, что надо разбить на части):

 
php $stroka = "GrodnoABCMinskABCGomelABCBrest"; $cities = explode("ABC", $stroka); list($city1, $city2, $city3, $city4) = $cities; //распределяются по переменным foreach ($cities as $city) echo "$city "; // выводятся все города ?> 

Здесь строка разбита по разделителю ABC. Так как в наличии четыре города, все они распределяются по переменным.

Также можно без проблем разбить части даты в массив — в роли делителя в примере ниже используется дефис:

 
php $date = '2021-01-01'; $arr = explode('-', $date); var_dump($arr); ?> 

Результат будет следующим:

В качестве разделителя можно использовать и пробел. Возьмём следующую строку:

 
This is explode tutorial that enables string split in PHP.

Здесь не используется limit, а после создания строки применяется метод explode. Далее задействуются: - цикл fогеасh, что необходимо для отображения возвращаемых элементов массива; - функция count() , обеспечивающая вывод числа подстрок в массиве:

explode_limit_030958_1-1801-a9147b.png

Функция implode в PHP

Функция implode() работает противоположно explode() . На практике она используется в целях объединения строк в одну, вставляя между ними разделитель.

 
implode(разделитель, строка); 

В качестве примера давайте выполним слияние массива в строку:

 
php $arr = ['1', '2', '3', '4', '5']; echo implode('-', $arr); ?> 

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

Вот и всё, в этой статье вы ознакомились с тем, как функционируют explode() и implode() . Но это простейшие вещи. Если же вы хотите получить действительно профессиональные навыки разработки на языке программирования PHP, добро пожаловать на специализированный курс в OTUS:

Источник

explode

Возвращает массив строк, полученных разбиением строки string с использованием separator в качестве разделителя.

Список параметров

Если аргумент limit является положительным, возвращаемый массив будет содержать максимум limit элементов, при этом последний элемент будет содержать остаток строки string .

Если параметр limit отрицателен, то будут возвращены все компоненты, кроме последних - limit .

Если limit равен нулю, то он расценивается как 1.

Замечание:

До PHP 8.0 функция implode() принимала параметры в любом порядке. Функция explode() никогда этого не поддерживала: убедитесь в том, что separator указан перед аргументом string .

Возвращаемые значения

Возвращает массив ( array ) строк ( string ), созданный делением параметра string по границам, указанным параметром separator .

Если separator является пустой строкой (""), explode() выбрасывает ValueError . Если separator не содержится в string , и используется отрицательный limit , то будет возвращён пустой массив ( array ), иначе будет возвращён массив, содержащий string . Если значения separator появляются в начале или в конце string , указанные значения будут добавлены как пустое значение массива ( array ), либо в первой, либо в последней позиции возвращённого массива ( array ) соответственно.

Список изменений

Версия Описание
8.0.0 explode() теперь выбрасывает TypeError , если параметр separator является пустой строкой ( "" ). Ранее вместо исключения explode() возвращала false .

Примеры

Пример #1 Пример использования explode()

// Пример 1
$pizza = "кусок1 кусок2 кусок3 кусок4 кусок5 кусок6" ;
$pieces = explode ( " " , $pizza );
echo $pieces [ 0 ]; // кусок1
echo $pieces [ 1 ]; // кусок2

// Пример 2
$data = "foo:*:1023:1000::/home/foo:/bin/sh" ;
list( $user , $pass , $uid , $gid , $gecos , $home , $shell ) = explode ( ":" , $data );
echo $user ; // foo
echo $pass ; // *

Пример #2 Пример возвращаемого значения explode()

/*
Строка, которая не содержит разделителя, будет
просто возвращать массив с одним значением оригинальной строки.
*/
$input1 = "hello" ;
$input2 = "hello,there" ;
$input3 = ',' ;
var_dump ( explode ( ',' , $input1 ) );
var_dump ( explode ( ',' , $input2 ) );
var_dump ( explode ( ',' , $input3 ) );

Результат выполнения данного примера:

array(1) ( [0] => string(5) "hello" ) array(2) ( [0] => string(5) "hello" [1] => string(5) "there" ) array(2) ( [0] => string(0) "" [1] => string(0) "" )

Пример #3 Примеры с использованием параметра limit

// положительный лимит
print_r ( explode ( '|' , $str , 2 ));

// отрицательный лимит
print_r ( explode ( '|' , $str , - 1 ));
?>

Результат выполнения данного примера:

Array ( [0] => один [1] => два|три|четыре ) Array ( [0] => один [1] => два [2] => три )

Примечания

Замечание: Эта функция безопасна для обработки данных в двоичной форме.

Смотрите также

  • preg_split() - Разбивает строку по регулярному выражению
  • str_split() - Преобразует строку в массив
  • mb_split() - Разделение строк в многобайтных кодировках, используя регулярное выражение
  • str_word_count() - Возвращает информацию о словах, входящих в строку
  • strtok() - Разбивает строку на токены
  • implode() - Объединяет элементы массива в строку

User Contributed Notes 3 notes

Note that an empty input string will still result in one element in the output array. This is something to remember when you are processing unknown input.

For example, maybe you are splitting part of a URI by forward slashes (like "articles/42/show" => ["articles", "42", "show"]). And maybe you expect that an empty URI will result in an empty array ("" => []). Instead, it will contain one element, with an empty string:

$uri = '' ;
$parts = explode ( '/' , $uri );
var_dump ( $parts );

Be careful, while most non-alphanumeric data types as input strings return an array with an empty string when used with a valid separator, true returns an array with the string "1"!

var_dump(explode(',', null)); //array(1) < [0]=>string(0) "" >
var_dump(explode(',', false)); //array(1) < [0]=>string(0) "" >

var_dump(explode(',', true)); //array(1) < [0]=>string(1) "1" >

If you want to directly take a specific value without having to store it in another variable, you can implement the following:

echo $status_only = explode('-', $status)[0];

Источник

PHP explode() Function

explode() is a built in function in PHP used to split a string in different strings. The explode() function splits a string based on a string delimiter, i.e. it splits the string wherever the delimiter character occurs. This functions returns an array containing the strings formed by splitting the original string.

array explode(separator, OriginalString, NoOfElements)

Parameters : The explode function accepts three parameters of which two are compulsory and one is optional. All the three parameters are described below

  1. separator : This character specifies the critical points or points at which the string will split, i.e. whenever this character is found in the string it symbolizes end of one element of the array and start of another.
  2. OriginalString : The input string which is to be split in array.
  3. NoOfElements : This is optional. It is used to specify the number of elements of the array. This parameter can be any integer ( positive , negative or zero)
  4. Positive (N): When this parameter is passed with a positive value it means that the array will contain this number of elements. If the number of elements after separating with respect to the separator emerges to be greater than this value the first N-1 elements remain the same and the last element is the whole remaining string.
  5. Negative (N):If negative value is passed as parameter then the last N element of the array will be trimmed out and the remaining part of the array shall be returned as a single array.
  6. Zero : If this parameter is Zero then the array returned will have only one element i.e. the whole string.

Return Type: The return type of explode() function is array of strings.

Input : explode(" ","Geeks for Geeks") Output : Array ( [0] => Geeks [1] => for [2] => Geeks )

Below program illustrates the working of explode() in PHP:

Источник

PHP explode() Function

The explode() function breaks a string into an array.

Note: The "separator" parameter cannot be an empty string.

Note: This function is binary-safe.

Syntax

Parameter Values

Parameter Description
separator Required. Specifies where to break the string
string Required. The string to split
limit Optional. Specifies the number of array elements to return.
  • Greater than 0 - Returns an array with a maximum of limit element(s)
  • Less than 0 - Returns an array except for the last -limit elements()
  • 0 - Returns an array with one element

Technical Details

Return Value: Returns an array of strings
PHP Version: 4+
Changelog: The limit parameter was added in PHP 4.0.1, and support for negative limits were added in PHP 5.1.0

More Examples

Example

Using the limit parameter to return a number of array elements:

// negative limit
print_r(explode(',',$str,-1));
?>

Unlock Full Access 50% off

COLOR PICKER

colorpicker

Join our Bootcamp!

Report Error

If you want to report an error, or if you want to make a suggestion, do not hesitate to send us an e-mail:

Thank You For Helping Us!

Your message has been sent to W3Schools.

Top Tutorials
Top References
Top Examples
Get Certified

W3Schools is optimized for learning and training. Examples might be simplified to improve reading and learning. Tutorials, references, and examples are constantly reviewed to avoid errors, but we cannot warrant full correctness of all content. While using W3Schools, you agree to have read and accepted our terms of use, cookie and privacy policy.

Источник

Читайте также:  How to find error in html file
Оцените статью