Предположим, что у вас есть фраза «Hello, World!» и из нее вам необходимо получить вторую часть, то есть «World!». Конечно, эту задачу можно решить несколькими способами, но разбивка строки и получение из нее нужной части также является вариантом решения.
И как это можно сделать, я сейчас расскажу.
Как разбить строку на массив на PHP?В PHP разбиение строки на массив осуществляется с помощью функции «explode » – ею, собственно, мы и воспользуемся.
Реализация:
Что здесь что?
На самом деле, вся «соль» здесь находится в третьей строке. Здесь мы указываем ориентир, по которому нужно разбить строку (в нашем случае – это запятая), и уже далее просто получаем нужный нам кусок строки, а поскольку нумерация в PHP начинается с нуля (а нулевая часть это «Hello»), то мы с вами указываем «$content_new["1"] » – второй элемент.
Как разбить строку на массив на JavaScript?На JavaScript эти же задачи решаются с помощью метода «split »:
var content = "Hello, World!"; var content_new = content_new.split(","); alert(content_new);
Обратите внимание , что ориентир (то есть то, как нам нужно разбивать строку) вы задаете сами. В нашем случае это была запятая, в вашем же – это может быть число или, например, даже слово.
ЗадачаРешение
Если в качестве разделителя частей строк выступает строковая константа, то следует применять функцию explode():
$words = explode(" ","My sentence is not very complicated");
Функция split() или функция preg_split() применяются, если при описании разделителя требуется регулярное выражение POSIX или Perl:
$words = split(" +","This sentence has some extra whitespace in it.");
$words = preg_split("/\d\. /","my day: 1. get up 2. get dressed 3. eat toast");
$lines = preg_split("/[\n\r]+/",$_REQUEST["textarea"]);
В случае чувствительного к регистру разделителя применяется функция spliti() или флаг /i в функции preg_split():
$words = spliti(" x ","31 inches x 22 inches X 9 inches");
$words = preg_split("/ x /i","31 inches x 22 inches X 9 inches");
Обсуждение
Простейшим решением из всех приведенных выше является использование explode(). Передайте ей разделитель строки, саму строку, которую необходимо разделить, и в качестве необязательного параметра предельное количество возвращаемых элементов:
$dwarves = "dopey,sleepy,happy,grumpy,sneezy,bashful,doc";
$dwarf_array = explode(",",$dwarves);
Теперь переменная $dwarf_array – это массив из семи элементов:
Print_r($dwarf_array);
Array
=> dopey
=> sleepy
=> happy
=> grumpy
=> sneezy
=> bashful
=> doc
)
Если заданный предел меньше количества возможных частей, то последняя часть содержит все остальное:
$dwarf_array = explode(",",$dwarves,5);
print_r($dwarf_array);
Array
=> dopey
=> sleepy
=> happy
=> grumpy
=> sneezy,bashful,doc
)
Функция explode() трактует разделитель строки буквально.
Если разделитель строки определяется как запятая с пробелом, то данная функция делит строку по пробелу, следующему за запятой, а не по запятой или пробелу. Функция split() предоставляет большую гибкость. Вместо строкового литерала в качестве разделителя она использует регулярное выражение POSIX:
$more_dwarves = "cheeky,fatso, wonder boy, chunky,growly, groggy, winky";
$more_dwarf_array = split(", ?",$more_dwarves);
Это регулярное выражение разделяет строку по запятой, за которой следует необязательный пробел, что позволяет правильно определить всех новых гномов. Таким образом, пробелы в их именах не разделяют их на части, но каждое имя выделяется независимо от того, отделяется ли оно с помощью запятой «,» или с помощью запятой с пробелом «, »:
Print_r($more_dwarf_array);
Array
=> cheeky
=> fatso
=> wonder boy
=> chunky
=> growly
=> groggy
=> winky
)
Существует функция preg_split(), которая подобно функции split() использует Perl-совместимые регулярные выражения вместо регулярных выражений POSIX.
Функция preg_split() предоставляет преимущества различных расширений регулярных выражений в Perl, а также хитрые приемы, такие как включение текста-разделителя в возвращаемый массив строк:
$math = "3 + 2 / 7 - 9";
$stack = preg_split("/ *([+\-\/*]) */",$math,-1,PREG_SPLIT_DELIM_CAPTURE);
print_r($stack);
Array
=> 3
=> +
=> 2
=> /
=> 7
=> -
=> 9
)
Разделитель-регулярное выражение ищет математические операторы (+, -, /, *), окруженные необязательными начальными или завершающими пробелами. Флаг PREG_SPLIT_DELIM_CAPTURE приказывает функции preg_split() включить совпадения как часть разделителя-регулярного выражения, заключенного в кавычки, в возвращаемый строковый массив. В кавычках только символы математических операций, поэтому возвращенный массив не содержит пробелов..
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 для указания количества разбиений в строке. Ниже показана строка, которая была использована:
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 разобьет номер в следующий массив элементов:
В функции PHP explode можно указать три параметра. Последний из них — необязательный, так как указывать количество разбиений (максимальное количество подстрок ) необязательно.
Описание каждого параметра:
$array_name = explode ($delimiter, $string_to_split, $no_of_breaks)
Также можно использовать пробел, запятые или другие слова в качестве $ delimiter .
Если в explode array PHP аргумент limit является положительным, возвращаемый массив будет содержать максимальное количество элементов, при этом последний элемент будет содержать остаток строки.
arrays split explode (9)Что вы пытаетесь достичь? Вы можете обращаться к символам в строке, как массив:
$s = "abcd"; echo $s;
печатает " a "
У меня есть строка, такая как:
и нужно разделить КАЖДЫЙ символ в массив.
Я, черт возьми, пытался:
Explode("", "123545789");
Но это дало мне очевидное: Предупреждение: никакой разграничитель, определенный в взрыве) ..
Как мне это понять? Я не вижу никакого метода, особенно просто функцию
Попробуй это:
$str = "Hello Friend"; $arr1 = str_split($str); $arr2 = str_split($str, 3); print_r($arr1); print_r($arr2);
Вышеприведенный пример выводит:
Array ( => H => e => l => l => o => => F => r => i => e => n => d) Array ( => Hel => lo => Fri => end)
$array = str_split("$string");
будет работать очень хорошо, но если вы хотите сохранить специальные символы в этой строке, и вы хотите сделать с ними некоторые манипуляции, THAN я бы использовал
Do { $array = mb_substr($string, 0, 1, "utf-8"); } while ($string = mb_substr($string, 1, mb_strlen($string), "utf-8"));
потому что для некоторых моих личных целей было показано, что они более надежны, когда есть проблема со специальными символами
Попробуй это:
$str = "546788"; $char_array = preg_split("//", $str, -1, PREG_SPLIT_NO_EMPTY);
str_split может сделать трюк. Обратите внимание, что строки в PHP можно получить так же, как в массиве символов, в большинстве случаев вам не нужно разделить строку на «новый» массив.
Вот пример, который работает с многобайтовыми (UTF-8) строками.
$str = "äbcd"; // PHP 5.4.8 allows null as the third argument of mb_strpos() function do { $arr = mb_substr($str, 0, 1, "utf-8"); } while ($str = mb_substr($str, 1, mb_strlen($str), "utf-8"));
Это также можно сделать с помощью preg_split() (preg_split("//u", $str, null, PREG_SPLIT_NO_EMPTY)), но в отличие от вышеприведенного примера, который работает почти так же быстро, независимо от размера строки, preg_split() быстро с небольшими строками, но намного медленнее с большими.
Если вы хотите разбить строку, лучше всего использовать:
$array = str_split($string);
Когда у вас есть разделитель, который отделяет строку, вы можете попробовать,
Explode("" ,$string);
Где вы можете передать разделитель в первой переменной внутри взрыва, например:
Explode(",",$string);
$array = str_split("0123456789bcdfghjkmnpqrstvwxyz");
str_split принимает необязательный второй параметр, длину блока (по умолчанию 1), поэтому вы можете делать такие вещи, как:
$array = str_split("aabbccdd", 2); // $array = aa // $array = bb // $array = cc etc ...
Вы также можете получить части своей строки, рассматривая ее как массив:
$string = "hello"; echo $string; // outputs "e"
Я просто хотел бы сказать, что у меня есть определенный Object, который имел переменные атрибуты (это было в основном сопоставление таблицы, и я менял столбцы в таблице, поэтому атрибуты в объекте, отражающие таблицу, также будут меняться
Class obj { protected $fields = array("field1","field2"); protected $field1 = array(); protected $field2 = array(); protected loadfields(){} // This will load the $field1 and $field2 with rows of data for the column they describe protected function clearFields($num){ foreach($fields as $field) { unset($this->$field[$num]); // This did not work the line below worked unset($this->{$field}[$num]); // You have to resolve $field first using {} } } }
Вся цель $ полей была именно так, что мне не нужно искать везде в коде, когда они меняются, я просто смотрю на начало класса и изменяю список атрибутов и массив массивов $ fields, чтобы отразить новые атрибуты.
Понадобился немного времени, чтобы понять это. Надеюсь, это может помочь кому-то.
В конце сентября Xiaomi решила выкатить на рынок вместо одного смартфона сразу два: и Mi5S Plus. Если с первым всё более-менее понятно — это просто обновление весеннего флагмана, то что из себя представляет версия с приставкой Plus не до конца понятно. Да
Коммуникации между людьми сегодня достигли высочайшего уровня технологичности. Прогресс в области компьютерных и сделал возможным обмен сообщениями за считанные секунды (или мгновенно). Это позволяет людям общаться в режиме реального времени, находясь при
Перед запуском Bing.com на рынке поисковых систем царил только Google. Поисковые системы работают практически одинаково, отличаются только деталями и дополнительными услугами. Поэтому возникает вопрос: остаться в Google или переехать на сервис Microsoft?
Продолжаем тему с геймпадом. В этой записи я расскажу Вам, как настроить программу X360CE. Эта программа нужна для обмана компьютерных игр. Грубо говоря, она помогает Вашему дешёвому китайскому геймпаду притворится оригинальным геймпадом от игровой приста
Xiaomi - это крупная и популярная компания, которую знают во всем мире. Не секрет, что на рынке существуют подделки и недобросовестные продавцы выдают копии за оригинал, чтобы заработать. С Xiaomi это, к сожалению, также случается. Как же проверить гаджет