2017-04-22 55 views
0

我有兩個variables如下面檢查字符可用與否在陣列

$string1 = array('A','b','c'); 
$string2 = 'bAcdadbcliek' 

需要從string1檢查所有字符是在string2禮物或不PHP和值是動態的。

+0

你嘗試過什麼?或者等待有人爲你寫代碼? –

+0

@u_mulder感謝您的關注,我嘗試使用'preg_match_all',但我不知道如何將此數組添加到'preg_match_all'中 – HirenMangukiya

+0

'implode'我想? –

回答

0

使用str_splitarray_intersect

<?php 

    $string1 = array('A','b','c'); 
    $string2 = 'bAcdadbcliek'; 

    $new = str_split($string2); 

    $new_2 = array_intersect($string1,$new); 

    if(count($new_2)==count($string1)) 
    { 
     echo "all matched"; 
    } 
    else 
    { 
     echo "not "; 
    } 

    ?> 
+0

,但這種情況下沒有給出適當的解決方案,因爲任何值不是另一個字符串時間不給。假設新字符串是$ string1 = array('A','b','c','kl');在這種情況下做什麼 –

+0

*'所有'string1中的字符是否存在於string2中* @WaseemAhmad – JYoThI

+0

是的,你是對的,但下一次字符串是$ string1 = array('A','b','c' , 'KL');在這種情況下做什麼。再次寫出洞程序 –

1

嘗試這

<?php 
    $string1 = array('A','b','c','2'); 
    $string2 = 'bAcdadbcliek'; 
    foreach($string1 as $newstring) 
    { 
     $finalval=strrchr($string2,$newstring); 
     if($finalval!="") 
     { 
     echo $newstring." ---: Available in given String<br/>"; 
     } 
     else 
     { 
     echo $newstring." ---: Not Available in given String<br/>"; 
     } 
    } 
    ?> 
0

下面的函數會返回一個true/false如果所有值都匹配。它是區分大小寫的。

基本上,將$string2拆分爲一個數組並將其交叉,匹配計數爲$string1(這是一個數組,而不是一個字符串)。如果計數相等,就會發現一切。

$string1 = array('A','b','c'); 
$string2 = 'bAcdadbcliek'; 

function match_string(string $string, array $match_values) { 
    if (count(array_intersect(str_split($string), $match_values)) == count($match_values)) 
     return true; 
    return false; 
} 

Live demo