检查数组是否包含字符串中的至少一个值

时间:2016-07-14 21:02:19

标签: php

是否可以检查数组是否包含字符串中的至少一个值?字符串是输出列表(见下文)。

这是我的数组,我们称之为$data

Array ( [0] => finance-accounting-banking [1] => fixed-term [2] => human-resources [3] => international [4] => logistics-supply-chain [5] => management [6] => marketing )

这是我的输出列表,我们称之为$types

fixed-term|marketing

我认为这可能有效,但没有运气......

if (in_array($types, $data))

3 个答案:

答案 0 :(得分:2)

如果您的$types变量的值由|分隔,则以下代码不会使用preg:

$data = array ( 0 => 'finance-accounting-banking', 1 => 'fixed-term', 2 => 'human-resources', 3 => 'international', 4 => 'logistics-supply-chain', 5 => 'management', 6 => 'marketing' );
$types = 'fixed-term|marketing';

if(count(array_intersect($data, explode('|', $types))) > 0){
    echo 'found';
}else{
    echo 'not found';
}

答案 1 :(得分:1)

如果$types完全采用您提到的格式,则只需使用preg_grep()函数即可:

$atLeastOne = count(preg_grep('/' . $types . '/', $input)) != 0;

答案 2 :(得分:0)

$pieces = explode('|',$types);
foreach ($pieces as $element) {
    if ( in_array($element,$data) ) {
        echo "found";
    }
}