'How to split a string by multiple delimiters in PHP?
"something here ; and there, oh,that's all!"
I want to split it by ; and ,
so after processing should get:
something here
and there
oh
that's all!
Solution 1:[1]
<?php
$pattern = '/[;,]/';
$string = "something here ; and there, oh,that's all!";
echo '<pre>', print_r( preg_split( $pattern, $string ), 1 ), '</pre>';
Solution 2:[2]
$result_array = preg_split( "/[;,]/", $starting_string );
Solution 3:[3]
The split() PHP function allows the delimiter to be a regular expression. Unfortunately it's deprecated and will be removed in PHP7!
The preg_split() function should be OK, and it returns an array:
$results = preg_split('/[;,]/', $string);
There are a few extra optional parameters which may be useful to you.
Is the first delimiter character in your edited example actually a 2 byte Unicode character?
Perhaps the preg_slit() function is treating the delimiter as three characters and splitting between the characters of the unicode (Chinese?) 'character'
Solution 4:[4]
You can get the values into an array using Devin's or Meder's method.
To get the output you want, you could probably do this
echo implode("\n", $resultingArray);
Or use <br /> if it's HTML you want.
Sources
This article follows the attribution requirements of Stack Overflow and is licensed under CC BY-SA 3.0.
Source: Stack Overflow
| Solution | Source |
|---|---|
| Solution 1 | Dharman |
| Solution 2 | Yogesh Suthar |
| Solution 3 | Moritur |
| Solution 4 | Community |
