11,719,903 members (88,072 online)
Rate this:
See more:
Hi all,

In PHP I just want to split a string, from a delimiter.

```\$str = "one/two/three";

\$arr = explode('/', \$str);
```

I just want to split this int to maximum arrays of two. So I can do it as follows.

```\$str = "one/two/three";

\$arr = explode('/', \$str, 2);
```

So the output will be,

one
two/three

But, I want to split it as,

one/two
three

How can I do that?
Posted 19-Jan-13 6:25am

Rate this:

## Solution 1

I think you misunderstand the `limit` parameter off the explode[^] function. It is used to limit the number off element to be returned by the `explode` function and all remaining part are stored in the last string.

```\$str = 'one/two/three/four';
\$arr = explode('/', \$str, 2);```
the result will be
```one
two/three/four```
and with this
```\$str = 'one/two/three/four';
\$arr = explode('/', \$str, 3);```
the result will be
```one
two
three/four```

I found this How to Explode String Right to Left?[^] and based on it you can use:
```\$str = 'one/two/three';
\$arr = array_map('strrev', explode('/', strrev(\$str), 2));```
I have not tested it, so you need to see if it works.
v2
Rate this:

## Solution 2

An alternative without array functions...
```\$last = strrpos(\$str, '/');
\$left = substr(\$str, 0, \$last);
\$right = substr(\$str, \$last+1);```