1.explode方法说明
explode方法可以使一个字符串按某一个字符串作为边界点来分割成数组。
1 | array explode ( string $delimiter , string $string [, int $limit ] )
|
Salin selepas log masuk
返回由字符串组成的数组,每个元素都是string的一个子串,被字符串delimiter作为边界点分割出来。
参数说明:
delimiter
边界上的分隔字符。
string
输入的字符串
limit
如果设置了limit参数并且是正数,则返回的数组最多包含limit个元素,而最后那个元素将包含string的剩余部分。
如果limit参数是负数,则返回除了最后的-limit个元素外的所有元素。
如果limit是0,则会被当做1。
2.例子
使用,分割字符串
1 2 | <?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 '
|
';?>
Salin selepas log masuk
输出:
1 2 3 4 5 6 7 8 9 10 | Array(
[0] => 1
[1] => 2
[2] => 3
[3] => 4
[4] => 5
[5] => 6
[6] => 7
[7] => 8
[8] => 9)
|
Salin selepas log masuk
使用,分割字符串,limit为正数
1 2 | <?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 '
|
';?>
Salin selepas log masuk
输出:
1 2 3 4 5 6 | Array(
[0] => 1
[1] => 2
[2] => 3
[3] => 4
[4] => 5,6,7,8,9)
|
Salin selepas log masuk
使用,分割字符串,limit为负数
1 2 | <?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 '
|
';?>
Salin selepas log masuk
输出:
1 2 3 4 5 6 7 | Array(
[0] => 1
[1] => 2
[2] => 3
[3] => 4
[4] => 5
[5] => 6)
|
Salin selepas log masuk
使用,分割字符串,limit为0
1 2 | <?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 '
|
';?>
Salin selepas log masuk
输出:
1 2 | Array(
[0] => 1,2,3,4,5,6,7,8,9)
|
Salin selepas log masuk
3.容易忽略的问题
一般我们会使用explode来分割id字符串之类的数据
1 2 3 | <?php $ids = '1,2,3,4'; $data = explode (',', $ids ); if ( $data ){ foreach ( $data as $k => $v ){
}
}?>
|
Salin selepas log masuk
正常情况下ids不为空,看代码也不会发现什么问题,因为有判断if(data);一般会认为已经做了空的处理。
但实际情况却是ids=null, data却不是空,会导致foreach里执行的代码出问题。
1 2 3 4 | <?php $ids = null; $data = explode (',', $ids ); if ( $data ){
print_r( $data );
} else { echo 'null';
}?>
|
Salin selepas log masuk
因为ids=null,使用explode分割,得出的数组是Array ( [0] => )而不是Array()。
所以判断需要修改一下才能避免问题发生
1 2 3 | <?php $ids = null; $data = explode (',', $ids ); if (isset( $data [0]) && $data [0]){ foreach ( $data as $k => $v ){
}
}?>
|
Salin selepas log masuk
本文讲解了php使用explode分割字符串新手容易忽略的问题,更多相关内容请关注php中文网。
相关推荐:
关于mysql互换表中两列数据方法的讲解
如何通过php生成0~1随机小数方法
关于mysql 时间戳格式化函数from_unixtime的使用说明
Atas ialah kandungan terperinci php使用explode分割字符串新手容易忽略的问题的讲解. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!