PHP: explode() vs. split()

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(). Almost since I started using PHP, I have used been using Perl syntax for these functions, thinking they were just aliases of their PHP equivalents.

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.

1 Response to “PHP: explode() vs. split()”


  1. 1 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”;

    }

Leave a Reply