2016-09-28 127 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时。用词表示:当字符串表示是相同的。

相关问题