您好我有下面的代码结构比较两个数组,并导致匹配的一个
$gender = array('girl','boy','men','women');
$content = array('Fastrack men watch');
我想搜索性别的内容,并返回的特定性别如下图所示
$result='men'
它shuld在内容列表中搜索如果有任何性别匹配,则应返回该性别名称
提前致谢
您好我有下面的代码结构比较两个数组,并导致匹配的一个
$gender = array('girl','boy','men','women');
$content = array('Fastrack men watch');
我想搜索性别的内容,并返回的特定性别如下图所示
$result='men'
它shuld在内容列表中搜索如果有任何性别匹配,则应返回该性别名称
提前致谢
$gender = array('girl','boy','men','women');
$content = array('Fastrack men watch');
$data= explode(" ",$content[0]);
$result = array_intersect($gender, $data);
这样,我找到确切的结果 感谢您的指导
$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);
谢谢这也适用于完美,但我使用differen方法,因为我已经发布了答案 –
$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妇女女孩男孩的手表“; 作为女孩,男孩,女性的结果
您可以使用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时。用词表示:当字符串表示是相同的。
只要用'foreach'和'strpos'加上'if',什么阻止你从它做起呢? – Ghost
strpos返回计数,但我想要匹配的单词。 @Ghost –
@AmiteshKumar $ gender数组包含许多不同的字符串,其中$ content数组只包含一个字符串 –