PHP中,将 xxx,xxx,xxx或sss.sss.sss等等相同类型的字符串处理成数组,或者反过来,将数组转换成字符串,在PHP中是有对应的函数来处理的。并不需要自己写一个方法来处理。
数组 → 字符串:implode()<?php
$arr = array('Hello','World!','Beautiful','Day!');
echo implode(" ",$arr);
?>
定义和用法
implode() 函数返回一个由数组元素组合成的字符串。
注释:implode() 函数接受两种参数顺序。但是由于历史原因,explode() 是不行的,您必须保证 separator 参数在 string 参数之前才行。
注释:implode() 函数的 separator 参数是可选的。但是为了向后兼容,推荐您使用使用两个参数。
注释:该函数是二进制安全的。
语法
implode(separator,array)separator
可选。规定数组元素之间放置的内容。默认是 ""(空字符串)。
array
必需。要组合为字符串的数组。
例子 :
用不同的字符分隔数组元素:<?php
$arr = array('Hello','World!','I','love','Shanghai!');
echo implode(" ",$arr)."
";
echo implode("+",$arr)."
"; // Hello+World+I+love+Shanghai
echo implode("-",$arr)."
";// xxx-xxx-xx
echo implode("X",$arr);
?>
字符串 → 数组: explode()
定义和用法
explode() 函数把字符串打散为数组。
注释:"separator" 参数不能是空字符串。
注释:该函数是二进制安全的。
语法
explode(separator,string,limit)separator
必需。规定在哪里分割字符串。
string
必需。要分割的字符串。
limit
可选。规定所返回的数组元素的数目。
可能的值:大于 0 - 返回包含最多 limit 个元素的数组
小于 0 - 返回包含除了最后的 -limit 个元素以外的所有元素的数组
0 - 返回包含一个元素的数组
实例
把字符串打散为数组:// 例一:
$str = "Hello world. I love Shanghai!";
print_r (explode(" ",$str));
?>
// 例二:
$str = 'one,two,three';
$arr = explode(',', $str);
print_r($arr);
//Array ( [0] => one [1] => two [2] => three )
延伸:截取数组中某一段的值 array_slice()
定义和用法
array_slice() 函数在数组中根据条件取出一段值,并返回。
注释:如果数组有字符串键,所返回的数组将保留键名。(参见例子 4)
语法
array_slice(array,start,length,preserve)array
必需。规定数组。
start
必需。数值。规定取出元素的开始位置。 0 = 第一个元素。
如果该值设置为正数,则从前往后开始取。
如果该值设置为负数,则从后向前取 start 绝对值。 -2 意味着从数组的倒数第二个元素开始。
length
可选。数值。规定被返回数组的长度。
如果该值设置为整数,则返回该数量的元素。
如果该值设置为负数,则函数将在举例数组末端这么远的地方终止取出。
如果该值未设置,则返回从 start 参数设置的位置开始直到数组末端的所有元素。
preserve
可选。规定函数是保留键名还是重置键名。可能的值:true - 保留键名
false - 默认。重置键名
例子 1
从数组的第二个元素开始取出,并仅返回两个元素:<?php
$a=array("red","green","blue","yellow","brown");
print_r(array_slice($a,1,2));
?>
例子 2
使用负的 start 参数:<?php
$a=array("red","green","blue","yellow","brown");
print_r(array_slice($a,-2,1));
?>
例子 3
把 preserve 参数设置为 true:<?php
$a=array("red","green","blue","yellow","brown");
print_r(array_slice($a,1,2,true));
?>
例子 4
处理字符串键名和整数键名:<?php
$a=array("a"=>"red","b"=>"green","c"=>"blue","d"=>"yellow","e"=>"brown");
print_r(array_slice($a,1,2));
$a=array("0"=>"red","1"=>"green","2"=>"blue","3"=>"yellow","4"=>"brown");
print_r(array_slice($a,1,2));
?>