Подскажите пожалуйста как перевести строку в массив по нескольким разделителям

12
N
На сайте с 08.03.2010
Offline
13
1927

В explode к сожалению есть только один разделитель.

Мне нужно что-то типа ниже предоставленного


<?
$a="x y,z";
$b=explode(' '||',',$a);
$c=count($b);
for($i=0;$i<$c;$i++){
echo "$b[$i]<br>";
}

?>

Но это не работает к моему сожалению.

Как на экране получить

x

y

z

?????????

СПАСИБО ЗАРАНЕЕ!

alexvaleev
На сайте с 04.02.2010
Offline
55
#1

Можно регуляркой попробовать, например

<?

$a="x y,z";
$b=preg_split("#,| #",$a);
$c=count($b);
for($i=0;$i<$c;$i++){
echo "$b[$i]<br>";
}
?>
Блог (http://alexvaleev.ru) Всем роуп! (https://rujump.ru/)
Dimoha
На сайте с 15.06.2009
Offline
53
#2

$a="x y,z";

$a = str_repalce(',', ' ', $a);

$a=explode(' ',$a);

print_r($a);

Drivelink (http://drivelink.ru/for/support/) - автоматическая проверка ссылок
rtyug
На сайте с 13.05.2009
Offline
263
#3

сходу у меня c помощью встроенных функций php не получатеся, нужно алгоритм написать...

Спалил тему: Pokerstars вывод WMZ, etc на VISA 0% или SWIFT + Конверт USD/GBP,etc (net profit $0,5 млрд) (https://minfin.com.ua/blogs/94589307/115366/) Monobank - 50₴ на счет при рег. тут (https://clck.ru/DLX4r) | Номер SIP АТС Москва 7(495) - 0Ꝑ, 8(800) - 800Ꝑ/0Ꝑ (http://goo.gl/XOrCSn)
N
На сайте с 08.03.2010
Offline
13
#4

Вармиант, я этот продумал, просто мой случай не такой простой как в примере. Мне по-просту не хотелось бы связываться с регулярными выражениями. Если ответ я не найду, конечно же придется ими воспользоваться, но может кто-нить предложит более рациональное предложение.

Спасибо))

rtyug
На сайте с 13.05.2009
Offline
263
#5

nwarap, так в чем проблема? подсказали же со preg_split, я не знал что так можно...

еще так:

@a =  grep { $_ =~ /(\w+)/ } split ( "(,)||( )" , "x y,z" );
[Удален]
#6

rtyug, а чо только у одной груди сосок?

rtyug:
"(,)||( )"
BredoGen.
На сайте с 19.10.2009
Offline
98
#7
nwarap:
но может кто-нить предложит более рациональное предложение.

Сначала заменять все разные разделители на один. А потом эксплодить. Не?

maldivec
На сайте с 04.11.2008
Offline
160
#8
BredoGen.:
Сначала заменять все разные разделители на один. А потом эксплодить. Не?

Уже предложили вообще-то:

Dimoha:
$a="x y,z";
$a = str_repalce(',', ' ', $a);
$a=explode(' ',$a);
print_r($a);

И по-моему это самый простой вариант, чтобы не париться с регулярками :D

BredoGen.
На сайте с 19.10.2009
Offline
98
#9

maldivec, каюсь, полностью не читал :) По сообщению

nwarap:
Мне по-просту не хотелось бы связываться с регулярными выражениями. Если ответ я не найду, конечно же придется ими воспользоваться, но может кто-нить предложит более рациональное предложение.

предположил, что еще не предлагали.

LEOnidUKG
На сайте с 25.11.2006
Online
1725
#10

<?

$a="x y,z";

$a=preg_replace('![^\w\d\s]*!', ' ', $a);

$a=explode(' ',$a);

print_r($a);

?>

✅ Мой Телеграм канал по SEO, оптимизации сайтов и серверов: https://t.me/leonidukgLIVE ✅ Качественное и рабочее размещение SEO статей СНГ и Бурж: https://getmanylinks.ru/
12

Авторизуйтесь или зарегистрируйтесь, чтобы оставить комментарий