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)."<br>"; 
    echo implode("+",$arr)."<br>"; // Hello+World+I+love+Shanghai
    echo implode("-",$arr)."<br>";// xxx-xxx-xx
    echo implode("X",$arr);
?>

字符串 → 数组: explode()


定义和用法

explode() 函数把字符串打散为数组。

注释:"separator" 参数不能是空字符串。

注释:该函数是二进制安全的。

语法

explode(separator,string,limit)

separator
必需。规定在哪里分割字符串。

string
必需。要分割的字符串。

limit
可选。规定所返回的数组元素的数目。
可能的值:

  • 大于 0 - 返回包含最多 limit 个元素的数组
  • 小于 0 - 返回包含除了最后的 -limit 个元素以外的所有元素的数组
  • 0 - 返回包含一个元素的数组

实例

把字符串打散为数组:


// 例一:
<?php
    $str = "Hello world. I love Shanghai!";
    print_r (explode(" ",$str));
?>

// 例二:
<?php
    $str = 'one,two,three';
    $arr = explode(',', $str);
    print_r($arr);
    //Array ( [0] => one [1] => two [2] => three )
<?php>

延伸:截取数组中某一段的值 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));
?>