分隔字符串,使用“str_split”就可以了好處是連空格也會作為數(shù)組的元素。我之前的例子就是因為前一個字符串包含2個空格,而后一個只有一個。但是輸出的時候看到的顯示都是一樣的。
也可以按照其他分隔符進行分割,如“explode”或者“preg_split”,
php教程 explode() 函數(shù)
php string 函數(shù)
定義和用法
explode() 函數(shù)把字符串分割為數(shù)組。
語法
explode(separator,string,limit)參數(shù) 描述
separator 必需。規(guī)定在哪里分割字符串。
string 必需。要分割的字符串。
limit 可選。規(guī)定所返回的數(shù)組元素的最大數(shù)目。
例子
在本例中,我們將把字符串分割為數(shù)組:
- <?php
- $str = "hello world. it's a beautiful day.";
- print_r (explode(" ",$str));
- ?>
輸出:
- array
- (
- [0] => hello
- [1] => world.
- [2] => it's
- [3] => a
- [4] => beautiful
- [5] => day.
- )
str_split 拆分函數(shù)
定義和用法
str_split() 函數(shù)把字符串分割到數(shù)組中。
語法
str_split(string,length)參數(shù) 描述
string 必需。規(guī)定要分割的字符串。
length 可選。規(guī)定每個數(shù)組元素的長度。默認是 1。
說明
如果 length 小于 1,str_split() 函數(shù)將返回 false。
如果 length 大于字符串的長度,整個字符串將作為數(shù)組的唯一元素返回。
例子
例子 1
輸出:
- array
- (
- [0] => h
- [1] => e
- [2] => l
- [3] => l
- [4] => o
- )
例子 2
- <?php
- print_r(str_split("hello",3));
- ?>
輸出:
- Array ( [0] => hel [1] => lo )
preg_split -- 用正則表達式分割字符串
說明
array preg_split ( string pattern, string subject [, int limit [, int flags]])
返回一個數(shù)組,包含 subject 中沿著與 pattern 匹配的邊界所分割的子串。
如果指定了 limit,則最多返回 limit 個子串,如果 limit 是 -1,則意味著沒有限制,可以用來繼續(xù)指定可選參數(shù) flags。
flags 可以是下列標記的任意組合(用按位或運算符 | 組合):
preg_split_no_empty
如果設(shè)定了本標記,則 preg_split() 只返回非空的成分。
以上是一篇我在網(wǎng)上找到的關(guān)于拆分的字符串的文章 ,也是比較全的。今天我在我在做項目的時候,遇到了這樣的一個問題,拆分中英文混合的字符串 。因為中文占有2個字節(jié),當使用str_split函數(shù)時,悲劇的出現(xiàn)了亂碼 。so,在網(wǎng)上找到了一個能夠正確拆分字符串的函數(shù) 。此函是只支持 gb2312編碼 ,其它的編碼的字符串需要先轉(zhuǎn)換編碼 。
- function arr_split_zh($tempaddtext){
- $tempaddtext = iconv("UTF-8", "gb2312", $tempaddtext);
- $cind = 0;
- $arr_cont=array();
-
- for($i=0;$i<strlen($tempaddtext);$i++)
- {
- if(strlen(substr($tempaddtext,$cind,1)) > 0){
- if(ord(substr($tempaddtext,$cind,1)) < 0xA1 ){ //如果為英文則取1個字節(jié)
- array_push($arr_cont,substr($tempaddtext,$cind,1));
- $cind++;
- }else{
- array_push($arr_cont,substr($tempaddtext,$cind,2));
- $cind+=2;
- }
- }
- }
- foreach ($arr_cont as &$row)
- {
- $row=iconv("gb2312","UTF-8",$row);
- }
-
- return $arr_cont;
-
- }
|