1

我有两个变量作为 CSV 字符串。例子:

 $csva = "1,4,7,10,39,12";
 $csvb = "4,1,12";

我想搜索中的所有元素是否都$csvb存在于$csva.

有一个简单的功能可以做到这一点吗?

注意:我知道我们可以遍历它来比较每个元素。但我想知道是否有任何 php 函数可以做到这一点。

有任何想法吗?

4

2 回答 2

2

http://codepad.org/nA2P6FCH

function csv_contains( $haystack, $needle ){
  return ! count( array_diff(
    explode(',',$needle ),
    explode(',',$haystack)
  ));
}

var_dump( csv_contains( "1,4,7,10,39,12", "4,1,12") ); //true

var_dump( csv_contains( "1,4,7,10,39,12", "4,1,12,999") ); // false
于 2012-06-20T17:14:58.987 回答
0

不,你能得到的最接近的是:

if(count(array_intersect(explode(',', $csva), explode(',', $csvb))) == count(explode(',', $csvb))){
    echo 'All items there';
}
于 2012-06-20T17:14:59.757 回答