Php разбор строки в массив. PHP метод explode для разбиения строки с тремя примерами. Как использовать функцию PHP explode

Для того, чтобы преобразовать строку в массив по разделителю, можно использовать функцию explode()
Необходимые параметры: разделитель и строка.

// Пример 1 $pizza = "кусок1 кусок2 кусок3 кусок4 кусок5 кусок6"; $pieces = explode(" ", $pizza); echo $pieces; // кусок1 echo $pieces; // кусок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; // *

Разбить строку на массив по регулярному выражению

Если возможностей explode() недостаточно, то можно использовать более мощную функцию: preg_split () . Она позволяет разбить строку не по фиксированному набору символов, а по

Пример из документации:

// разбиваем строку по произвольному числу запятых и пробельных символов, // которые включают в себя " ", \r, \t, \n и \f $keywords = preg_split("/[\s,]+/", "hypertext language, programming"); print_r($keywords);

Результат:

/* Array ( => hypertext => language => programming) */

Преобразовать строку в массив по количеству символов

Функция str_split() преобразует строку в массив, разбивая ее на элементы с заданным количеством символов. Хотите узнать как ее использовать? Посмотрите документацию.

$str = "Hello Friend"; $arr2 = str_split($str, 3); print_r($arr2)

2.8K

Метод PHP explode используется для разбиения строки на заданное число подстрок.

Синтаксис метода

Пример использования PHP метода explode :

$array_name = explode ($delimiter, $string_to_split, $no_of_breaks)

Пример использования explode для разбиения номера телефона

В этом примере мы объявили строковую переменную и присвоили ей номер телефона следующего формата:

001-234-567678

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

Затем использовали цикл fогеасh для отображения значений элементов массива, которые являются подстроками номера телефона. Поскольку параметр limit не указан, весь номер телефона будет разбит на три подстроки:


Посмотреть демо и код

Пример с пробелом в качестве разделителя

В этом примере PHP explode переноса строки использован пробел в качестве разделителя. Для примера возьмем это строку:

В примере снова не используется параметр limit . После создания строки мы применили метод explode для ее разбиения. Затем использовали цикл fогеасh для отображения возвращаемых элементов массива.

Наконец, применили функцию count() для вывода количества подстрок в массиве:


Посмотреть демо и код

Пример с параметром limit

Это пример, описанный выше, за исключением того, что здесь мы использовали параметр limit для указания количества разбиений в строке. Ниже показана строка, которая была использована:

This is explode tutorial that enables string split in PHP.

В PHP explode примере, когда мы использовали пробел в качестве разделителя, было возвращено всего 10 подстрок. На этот раз с помощью параметра limit было определено 5 разбиений:


Посмотреть демо и код

На демонстрационной странице отображаются только пять подстрок, при этом последняя включает всю оставшуюся часть строки. Общее количество элементов массива также 5 , а не 10 , как в приведенном выше примере.

Для чего нужен метод explode

Метод explode (PHP split ) используется для разбиения заданной строки. Допустим, что веб-форма принимает телефонный номер с кодом страны и области в следующем формате:

001-234-567678

Нам нужно отделить код страны и области, которые разделены дефисом. Для разбиения телефонного номера можно воспользоваться explode с разделителем дефисом (тире ) после принятия номера в качестве входного параметра.

Поскольку explode возвращает массив подстрок, метод explode разобьет номер в следующий массив элементов:

  • Первый элемент = 001
  • Второй элемент = 234
  • Третий элемент = 567678

Как использовать функцию PHP explode

В функции PHP explode можно указать три параметра. Последний из них — необязательный, так как указывать количество разбиений (максимальное количество подстрок ) необязательно.

Описание каждого параметра:

$array_name = explode ($delimiter, $string_to_split, $no_of_breaks)

  • $ Array_name — массив; поскольку метод explode возвращает массив строк, полученный разбиением строки;
  • $delimiter — определяет разделительный знак. Мы использовали «-» в качестве разделителя, чтобы разбить телефонный номер.

Также можно использовать пробел, запятые или другие слова в качестве $ delimiter .

  • Следующим параметром является строка, которую нужно разбить методом explode . Это может быть строковая переменная, предложение и т.д.;
  • Последний параметр указывает максимальное количество подстрок или количество разбиений в строке. Это необязательный параметр.

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

Если вам потребовалось преобразовать массив php в строку, то для этого есть несколько инструментов. Применение того или иного инструмента зависит от ваших целей.

1. Функция implode()

С ее помощью можно «склеить» элементы массива в строку, через любой разделитель. Подробнее: implode
Пример:

Echo implode("|", array(1, 2, 3)); // выдаст строку: 1|2|3

У этой функции есть антагонист explode() , который наоборот разбивает строку по разделителю, на элементы массива. Подробнее: explode

2. Функция serialize()

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

$array = array("1" =>; "elem 1", "2"=> "elem 2", "3" => "elem 3"); $string = serialize($array); echo $string; // выдаст строку: a:3:{i:1;s:6:"elem 1";i:2;s:6:"elem 2";i:3;s:7:" elem 3";}

Затем из этой строки, можно снова получить массив:

$array = unserialize($string);

3. Функция json_encode()

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

$array = array(1 => "one", 2 => "two",); $json = json_encode($array); echo $json; // {"1":"one","2":"two"}

Обратная функция json_decode() вернет объект с типом stdClass, если вторым параметром функции будет false. Либо вернет ассоциативный массив, если передать true вторым параметром. Подробности здесь.