经常会用到数组和字符串的转换,例如下面的一个数组:
<?php
$userid=array(1,2,3,4,5);
转换方式一:
<?php
$str='';
foreach($userid as $id){
$str=$id.$str;
}
$string=rtrim($str);
echo $string;
?>
转换方式二:
<?
$string2 = implode(" ", $array);
?>
字符串转成数组:
转换方式一:
$pizza = "piece1 piece2 piece3 piece4 piece5 piece6";
$pieces = explode(" ", $pizza);
转换方式二:
<?php
// 分隔符可以是斜线,点,或横线
$date = "04/30/1973";
list($month, $day, $year) = split ('[/.-]', $date);
echo "Month: $month; Day: $day; Year: $year<br /> ";
?>
转换方式三:
preg_split — 通过一个正则表达式分隔字符串
array preg_split ( string $pattern , string $subject [, int $limit = -1 [, int $flags = 0 ]] )
通过一个正则表达式分隔给定字符串.
pattern:用于搜索的模式, 字符串形式.
subject:输入字符串
limit:如果指定, 将限制分隔得到的子串最多只有limit个, 返回的最后一个 子串将包含所有剩余部分.limit值为-1, 0或null时都代表"不限制", 作为php的标准, 你可以使用null跳过对flags的设置.
flags:flags可以是任何下面标记的组合(以位或运算|组合):
PREG_SPLIT_NO_EMPTY:如果这个标记被设置, preg_split()将进返回分隔后的非空部分.
PREG_SPLIT_DELIM_CAPTURE:如果这个标记设置了, 用于分隔的模式中的括号表达式将被捕获并返回.
PREG_SPLIT_OFFSET_CAPTURE:如果这个标记被设置, 对于每一个出现的匹配返回时将会附加字符串偏移量. 注意: 这将会改变返回数组中的每一个元素, 使其每个元素成为一个由第0 个元素为分隔后的子串, 第1个元素为该子串在subject 中的偏移量组成的数组.
<?php
//使用逗号或空格(包含" ", , , , f)分隔短语
$keywords = preg_split("/[s,]+/", "hypertext language, programming");
?>
使用偏移量:
<?php
$str = 'hypertext language programming';
$chars = preg_split('/ /', $str, -1, PREG_SPLIT_OFFSET_CAPTURE);
print_r($chars);
?>
输出:
Array
(
[0] => Array
(
[0] => hypertext
[1] => 0
)
[1] => Array
(
[0] => language
[1] => 10
)
[2] => Array
(
[0] => programming
[1] => 19
)
)