Home > Article > Backend Development > An explanation of issues that novices can easily overlook when using php to split strings using explode
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 ] )
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.
Use, split string
<?php$str = '1,2,3,4,5,6,7,8,9';$arr = explode(',', $str);echo '<pre class="brush:php;toolbar:false">'; print_r($arr);echo '';?>
Output:
Array( [0] => 1 [1] => 2 [2] => 3 [3] => 4 [4] => 5 [5] => 6 [6] => 7 [7] => 8 [8] => 9)
Use, split string , limit is a positive number
<?php$str = '1,2,3,4,5,6,7,8,9';$arr = explode(',', $str, 5);echo '<pre class="brush:php;toolbar:false">'; print_r($arr);echo '';?>
Output:
Array( [0] => 1 [1] => 2 [2] => 3 [3] => 4 [4] => 5,6,7,8,9)
Use, to split the string, limit is a negative number
<?php$str = '1,2,3,4,5,6,7,8,9';$arr = explode(',', $str, -3);echo '<pre class="brush:php;toolbar:false">'; print_r($arr);echo '';?>
Output:
Array( [0] => 1 [1] => 2 [2] => 3 [3] => 4 [4] => 5 [5] => 6)
Use, split the string, limit is 0
<?php$str = '1,2,3,4,5,6,7,8,9';$arr = explode(',', $str,0);echo '<pre class="brush:php;toolbar:false">'; print_r($arr);echo '';?>
Output:
Array( [0] => 1,2,3,4,5,6,7,8,9)
Generally we Will use explode to split data such as id string
<?php$ids = '1,2,3,4';$data = explode(',', $ids);if($data){ foreach($data as $k=>$v){ // do sth } }?>
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(',', $ids);if($data){ print_r($data); }else{ echo 'null'; }?>
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
d8d2503db740dae030e72ac444eb1af8$v){ // do sth } }?>
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!