phparrayssplitexplodepreg-split

Explode string only once on first occurring newline character


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'
)

Solution

  • 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.