首頁  >  文章  >  後端開發  >  PHP中怎樣去定位字串與陣列中的元素?

PHP中怎樣去定位字串與陣列中的元素?

WBOY
WBOY原創
2021-11-04 16:37:061654瀏覽

在之前的文章《帶你快速掌握PHP字串的替換(實例詳解)》中我們詳細的介紹了PHP中字符床替換的相關知識,這篇文章我們來看看PHP中字串定位的相關知識,希望對大家有幫助!

PHP中怎樣去定位字串與陣列中的元素?

在前一篇文章中我們了解了PHP中的字串想要完成替換字元的操作需要使用到PHP提供的substr_replace 函數與str_replace 函數,這樣就能夠解決PHP替換的問題,同樣的在PHP的開發過程中字串的定位也是很常見的。

在PHP中想要搜尋字串在另一個字串中是否出現,可以透過PHP中的strstr函數,接下來我們就來看看怎麼去定位找一個字符串。

<strong><span style="font-size: 20px;">strstr</span></strong>#函數-定位字串元素

在PHP中可以透過strstr函數來搜尋一個字串在另一個字串中的第一次出現,strstr函數的基本語法格式如下:

strstr(string,search,before_search)

其中需要注意的是:參數string表示的是需要搜尋的字串,參數search表示的是被搜尋的字串,如果該參數不是一個字串那麼這個參數就會被轉換為整數並且當作字元的序號來使用,參數before_search預設的是false,如果設定為true的話,傳回的結果就是參數search第一次出現之前的那部分字串。

該函數的傳回結果是從符合點開始的字串的剩餘部分,如果找不到需要搜尋的字串,那麼傳回的結果就是flase。

接下來我們透過範例來看strstr函數的使用,範例如下:

<?php
$email  = &#39;123456789123456789@gamil.com&#39;;
echo $email. &#39;<br/>&#39;;//正常输出
$domain = strstr($email, &#39;@&#39;);//通过strstr函数来搜索@出现的第一次位置
echo $domain;
?>

輸出結果:

PHP中怎樣去定位字串與陣列中的元素?

在上述範例中,透過strstr函數傳回的結果就是我們搜尋的字串之後剩餘的部分。我們透過strstr函數完成了定位字串的目的。

提到定位匹配在PHP中就不得不提到正規表示式了,在上文中我們透過strstr函數完成了定位字串,在PHP中還有一個函數是preg_grep()函數,接下來我們一起來看看它的用法。

<strong><span style="font-size: 20px;">preg_grep</span></strong>#()函數-定位陣列元素

在PHP中提到搜尋定位,繞不過去的肯定就是正規表示式了,PHP就提供了 preg_grep() 透過正規表示式來進行比對陣列元素。

preg_grep()函數的基本語法格式如下:

array preg_grep ( string $pattern , array $input [, int $flags = 0 ] )

其中需要注意的是:參數pattern是用正規表示式來定義的,也就是要搜尋的模式,參數input表示的是要搜尋的數組,參數flags一般設定為PREG_GREP_INVERT表示的是這時候的函數傳回的結果是不符的 $pattern 元素所組成的陣列。

接下來我們透過範例來看一下preg_grep()函數的使用,範例如下:

<?php
$pattern = &#39;/[0-9]/&#39;;
$subject = array(&#39;weuy&#39;,&#39;r3ui&#39;,&#39;76as83&#39;,&#39;s&#39;,&#39;0ck9&#39;);
$arr = preg_grep($pattern,$subject);
show($arr);
function show($var){
    if(empty($var)){
        echo &#39;null&#39;;
    }elseif(is_array($var)||is_object($var)){
        echo &#39;
&#39;;
        print_r($var);
        echo &#39;
&#39;;
    }else{
        echo $var;
    }
}
echo &#39;<br/>&#39;;
$arr1 = preg_grep($pattern,$subject,PREG_GREP_INVERT);
show($arr1);
function show1($var1){
    if(empty1($var1)){
        echo &#39;null&#39;;
    }elseif(is_array($var1)||is_object($var1)){
        echo &#39;
&#39;;
        print_r($var1);
        echo &#39;
&#39;;
    }else{
        echo $var1;
    }
}
?>

輸出結果:

PHP中怎樣去定位字串與陣列中的元素?

透過上述範例我們可以配對到陣列元素,且參數flags的值不同,preg_grep()函數傳回的結果也不同。

大家如果有興趣的話,可以點選《PHP影片教學》進行更多關於PHP知識的學習。

以上是PHP中怎樣去定位字串與陣列中的元素?的詳細內容。更多資訊請關注PHP中文網其他相關文章!

陳述:
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn