Brian Hartsock's Blog

PHP: explode() vs. split()

by bhartsock on Jun.11, 2007, under PHP

Even though I have been a PHP programmer for 4 years or so now, I still discover new things every day. While looking at different ways to split strings based on regular expressions I learned an important lesson.

explode() isn’t the same as split()!

Since I learned Perl before PHP, I prefer using split() and join() instead of explode() and implode(), respectively. To my surprise, split() is not an alias of explode() while join() is an alias of implode().

The biggest difference is explode() takes a delimiter to split by, while split() takes a regular expression. This means that explode() is going to execute faster. Also, the PHP documentation says that preg_split() is faster than split(), so really there isn’t much of a reason to use split() at all.

Post to Twitter Post to Digg Post to Facebook Post to Reddit


6 Comments for this entry

  • Chaser

    How will the following PHP code look like in PERL?
    Code:

    foreach ($arrResults as $result)
    {
    print_r(explode(‘||’, $result));
    echo(“”);
    }

    =======================

    This is what I have, but it’s not working.
    Code:

    @result_array = $result;

    foreach $line ( @result_array )
    {

    $line2 = split(‘\|\|’, $line);
    print “$line2\n”;

    }

  • chhh

    @result_array = (“haha||hoho”, “mama||papa”, “qwer||asdf”);

    foreach ( @result_array ) {
    print split(/\|\|/, $_), “\n”;
    }

  • croner

    thank you for this post , I was wondering whar is faster :P

  • Byron Mowery

    Me and my friend were actully discussing this the other day! Now I know that I was right. lol!

  • volkan

    split() is a bad practice in PHP, you MUST USE explode()

    even php people know that, split() now is obsolete!

    start your modifying your function today!

  • Rafael

    now split() is deprecated!!!

Leave a Reply