2016-09-28 119 views
0

您好我有下面的代碼結構比較兩個數組,並導致匹配的一個

$gender = array('girl','boy','men','women'); 
$content = array('Fastrack men watch'); 

我想搜索性別的內容,並返回的特定性別如下圖所示

$result='men' 

它shuld在內容列表中搜索如果有任何性別匹配,則應返回該性別名稱

提前致謝

+2

只要用'foreach'和'strpos'加上'if',什麼阻止你從它做起呢? – Ghost

+0

strpos返回計數,但我想要匹配的單詞。 @Ghost –

+0

@AmiteshKumar $ gender數組包含許多不同的字符串,其中$ content數組只包含一個字符串 –

回答

0
$gender = array('girl','boy','men','women'); 
$content = array('Fastrack men watch'); 
$data= explode(" ",$content[0]); 

$result = array_intersect($gender, $data); 

這樣,我找到確切的結果 感謝您的指導

1
$gender = array('girl','boy','men','women'); 
$content = array('Fastrack men watch'); 
$ret=array(); 
foreach($gender as $val){ 
$pos = strpos($content[0], $val); 
    if($pos!=false){ 
    $ret[]=$val;  
    } 
} 
echo "The gender found ".implode(',',$ret); 
+0

謝謝這也適用於完美,但我使用differen方法,因爲我已經發布了答案 –

0
 $gender_array = array('girl','boy','men','women'); 
     $content = 'Fastrack women watch girl'; 
     $content_array = explode(" ",$content); 

     $result =""; 
     foreach ($gender_array as $gender) { 
      if(in_array($gender, $content_array)){ 
      $result = $result.",".$gender; 
      } 
     } 
     echo $result = trim($result, ','); 

這說明兩性性別爲一個或多個太.. 如:$內容=「的Fastrack婦女女孩男孩的手錶「; 作爲女孩,男孩,女性的結果

0

您可以使用array_intersect()來執行您需要的操作。

array_intersect() - 計算數組的交集

array_intersect()返回包含存在於所有的參數的ARRAY1的所有值的數組。請注意,鍵被保留。

array_intersect()函數比較兩個(或更多)數組的值,並返回匹配項。

此函數比較兩個或多個陣列的值,並返回包含從ARRAY1存在於數組2,ARRAY3條目的陣列,等等

返回值:返回包含一個數組來自array1的條目存在於所有其他陣列中。

<?php 
$a1=array("a"=>"red","b"=>"green","c"=>"blue","d"=>"yellow"); 
$a2=array("e"=>"red","f"=>"green","g"=>"blue"); 

$result=array_intersect($a1,$a2); 
print_r($result); 
?> 

輸出:

Array ([a] => red [b] => green [c] => blue) 

注:兩個因素被認爲是平等的,當且僅當(字符串)$ elem1 ===(字符串)$ elem2時。用詞表示:當字符串表示是相同的。

相關問題