Skip to content
Advertisement

Explode string only once on first occurring substring

preg_match() gives one match.
preg_match_all() returns all matches.
preg_split() returns all splits.

How can I split only on the first match?

Example:

preg_split("~n~", $string);

This is what I want:

array(
  0 => 'first piece',
  1 => 'the rest of the string
        without any further splits'
)

Advertisement

Answer

Simply set $limit to 2 for 2 parts of the array. Thanks to @BenJames for mentioning:

preg_split("~n~", $string, 2);

I tested and it works fine.

The limit argument:

If specified, then only substrings up to limit are returned with the rest of the string being placed in the last substring. A limit of -1, 0 or null means “no limit” and, as is standard across PHP, you can use null to skip to the flags parameter.

User contributions licensed under: CC BY-SA
9 People found this is helpful
Advertisement