Home > Backend Development > PHP Tutorial > An explanation of issues that novices can easily overlook when using php to split strings using explode

An explanation of issues that novices can easily overlook when using php to split strings using explode

jacklove
Release: 2023-03-31 06:56:01
Original
2319 people have browsed it

1.explode method description

The explode method can split a string into an array based on a certain string as a boundary point.

array explode ( string $delimiter , string $string [, int $limit ] )
Copy after login

Returns an array composed of strings. Each element is a substring of string, separated by string delimiter as a boundary point.

Parameter description:
delimiter
The delimiter character on the boundary.

string
Input string

limit
If the limit parameter is set and it is positive number, the returned array contains at most limit elements, and the last element will contain the remainder of the string.
If the limit parameter is a negative number, all elements except the last -limit elements will be returned.
If limit is 0, it will be treated as 1.

2. Example

Use, split string

<?php$str = &#39;1,2,3,4,5,6,7,8,9&#39;;$arr = explode(&#39;,&#39;, $str);echo &#39;<pre class="brush:php;toolbar:false">&#39;;
print_r($arr);echo &#39;
';?>
Copy after login

Output:

Array(
    [0] => 1
    [1] => 2
    [2] => 3
    [3] => 4
    [4] => 5
    [5] => 6
    [6] => 7
    [7] => 8
    [8] => 9)
Copy after login

Use, split string , limit is a positive number

<?php$str = &#39;1,2,3,4,5,6,7,8,9&#39;;$arr = explode(&#39;,&#39;, $str, 5);echo &#39;<pre class="brush:php;toolbar:false">&#39;;
print_r($arr);echo &#39;
';?>
Copy after login

Output:

Array(
    [0] => 1
    [1] => 2
    [2] => 3
    [3] => 4
    [4] => 5,6,7,8,9)
Copy after login

Use, to split the string, limit is a negative number

<?php$str = &#39;1,2,3,4,5,6,7,8,9&#39;;$arr = explode(&#39;,&#39;, $str, -3);echo &#39;<pre class="brush:php;toolbar:false">&#39;;
print_r($arr);echo &#39;
';?>
Copy after login

Output:

Array(
    [0] => 1
    [1] => 2
    [2] => 3
    [3] => 4
    [4] => 5
    [5] => 6)
Copy after login

Use, split the string, limit is 0

<?php$str = &#39;1,2,3,4,5,6,7,8,9&#39;;$arr = explode(&#39;,&#39;, $str,0);echo &#39;<pre class="brush:php;toolbar:false">&#39;;
print_r($arr);echo &#39;
';?>
Copy after login

Output:

Array(
    [0] => 1,2,3,4,5,6,7,8,9)
Copy after login

3. Problems that are easy to ignore

Generally we Will use explode to split data such as id string

<?php$ids = &#39;1,2,3,4&#39;;$data = explode(&#39;,&#39;, $ids);if($data){    foreach($data as $k=>$v){        // do sth
    }
}?>
Copy after login

Under normal circumstances, ids are not empty, and you will not find any problems when looking at the code, because there is a judgment if (data); generally it will be considered that it has been done. Empty handling.
But the actual situation is that ids=null, but data is not empty, which will cause problems with the code executed in foreach.

<?php$ids = null;$data = explode(&#39;,&#39;, $ids);if($data){
    print_r($data);
}else{    echo &#39;null&#39;;
}?>
Copy after login

Because ids=null, use explode to split, and the resulting array is Array ( [0] => ) instead of Array().

So the judgment needs to be modified to avoid problems

<?php$ids = null;$data = explode(&#39;,&#39;, $ids);if(isset($data[0]) && $data[0]){    foreach($data as $k=>$v){        // do sth
    }
}?>
Copy after login

This article explains the problems that novices who use explode to split strings in PHP easily overlook. For more related content, please pay attention to the PHP Chinese website.

Related recommendations:

Explanation on the two-column data method in the mysql exchange table

How to generate 0~1 random through php Decimal method

Instructions on the use of mysql timestamp format function from_unixtime

The above is the detailed content of An explanation of issues that novices can easily overlook when using php to split strings using explode. For more information, please follow other related articles on the PHP Chinese website!

Related labels:
source:php.cn
Statement of this Website
The content of this article is voluntarily contributed by netizens, and the copyright belongs to the original author. This site does not assume corresponding legal responsibility. If you find any content suspected of plagiarism or infringement, please contact admin@php.cn
Popular Tutorials
More>
Latest Downloads
More>
Web Effects
Website Source Code
Website Materials
Front End Template