經常會用到數組和字符串的轉換,例如下面的一個數組:
<?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
)
)