2015年5月14日

[筆記] PHP 字串和陣列的取代與切開處理(str_replace, explode, str_split, substr_count, count, arrat_slice,in_array)


最近在利用PHP寫一支計算機,記錄一下學習到的一些函式。


str_replace
str_replace(尋找的字串,取代成的字串,原字串)可以用來取代字串中的內容,使用範例可以參考PHP官方網站
$string_example='Hello, welcome to PJCHENder';
    $replace_example = str_replace('H',"W",$string_example);
    echo $replace_example;
    //結果是:Wello, welcome to PJCWENder
explode
explode(目標字串,原字串)可以把字串根據目標字元替代成陣列,使用範例可以參考PHP官方網站
    $string_example='Hello, welcome to PJCHENder';
    $replace_example = explode(" ",$string_example);
    print_r( $replace_example);
    //輸出結果是:Array ( [0] => Hello, [1] => welcome [2] => to [3] => PJCHENder )
如果是想要根據許多不同的目標字串來拆成陣列,可以參考官網最下方的討論,有人提供了一個相當簡單的function。簡單來說,就是先用str_replace把目標字串,都先取代成一個符號,接著再利用explode把那個符號拆開。
寫法像是這樣:
    $string_example='Hello,welcome+to-PJCHENder';
//  先把所有目標字串取代成_
    $replace_example = str_replace(array(",","+","-"),'_',$string_example);
//  在根據_把字串拆成不同陣列
    $replace_array = explode('_',$replace_example);
    print_r( $replace_array);
    //輸出結果是:Array ( [0] => Hello, [1] => welcome [2] => to [3] => PJCHENder )
str_split
str_split(原字串,位元長度)可以根據位元長度(空白也算一個字元)來將字串中的內容切割成許多不同的陣列,使用範例可以參考PHP官方網站
    $string_example='Hello,welcome to PJCHENder';
    $replace_example = str_split($string_example,3);
    print_r( $replace_example);
    //輸出結果是:Array ( [0] => Hel [1] => lo, [2] => wel [3] => com [4] => e t [5] => o P [6] => JCH [7] => ENd [8] => er )
substr_count
sub_strcount(被搜尋的字串,目標字串)用來計算被搜尋的字串中,出現多少次目標字串
    
$string_example='This is PJCHENder website';
echo substr_count($string_example,"is"); //用來看被搜尋的字串中,出現幾次目標字串
// 輸出結果2
count
count(陣列名稱)可以計算該陣列的元素數目,使用範例可以參考PHP官方網站
    $string_example='Hello,welcome to PJCHENder';
    $replace_example = str_split($string_example,3);
    $num_of_array=count($replace_example);
    echo $num_of_array;
    //輸出結果是:9
array_splice
array_splice(陣列名稱,起始位置,長度,置換元素)可以用來刪除陣列元素,或者是把特定位置的陣列元素刪除後,再把新的元素內容代換進去PHP官方網站
$string_example='Hello welcome to PJCHENder';
    $replace_example = explode(" ",$string_example);
    //  輸出結果:Array ( [0] => Hello [1] => welcome [2] => to [3] => PJCHENder )
    array_splice($replace_example,1);//陣列位置1以後的都刪除
    //  輸出結果:Array ( [0] => Hello )
    array_splice($replace_example,1,2);//陣列位置1以後的刪除兩個
    //  輸出結果:Array ( [0] => Hello [1] => PJCHENder )
    array_splice($replace_example,1,2,'Aaron');//陣列位置1以後的刪除兩個,並且插入一個新的元素
    //  輸出結果:Array ( [0] => Hello [1] => Aaron [2] => PJCHENder )
in_array
in_array(目標元素,被搜尋的陣列)用來在被搜尋的陣列中,檢驗目標元素是否存在,回傳1(true)或空值(false),需注意的是目標元素若是字串的時候,則對於字母大小寫是有區別的(case-sensitive)
我們可以看一下下面的範例,首先透過explode這個函式,我先把字串拆成陣列,接著,我用了一個簡易的if判斷式,用法是這樣的(如果)...?(為真時呈現):(為假時呈現)
$string_example='Hello, welcome to PJCHENder';
$replace_example = explode(" ",$string_example);
 print_r( $replace_example);
// 輸出結果是:Array ( [0] => Hello, [1] => welcome [2] => to [3] => PJCHENder )
echo in_array("PJCHENder",$replace_example) ? "True" : "False";
// 輸出結果是True
echo in_array("pjchender",$replace_example) ? "True" : "False";
// 輸出結果是False
echo in_array("aaron",$replace_example) ? "True" : "False";
// 輸出結果是False

0 意見:

張貼留言