你可以使用array_filter来匹配数组元素的列表
$array_a = array("01.03.04.45.06");
$array_b = array("01.05","07.09.12","01.45","09.11","08.09.32","79.02.03.12","02.03");
//Make $array_a array
$array_a = explode( ".", $array_a[0] );
$result = array_filter($array_b,function( $var ) use($array_a){
$temp = explode( ".", $var );
$count = 0;
foreach( $temp as $x ) if ( in_array( $x, $array_a ) ) $count++;
if ( $count >= 2 ) return true;
});
echo "<pre>";
print_r( $result );
echo "</pre>";
这将导致:
Array
(
[2] => 01.45
)
文档:http://php.net/manual/en/function.array-filter.php
如果你想返回一个bool only,你可以使用array_reduce
$array_a = array("01.03.04.45.06");
$array_b = array("01.05","07.09.12","01.45","09.11","08.09.32","79.02.03.12","02.03");
//Make $array_a array
$array_a = explode( ".", $array_a[0] );
$result = array_reduce($array_b,function( $carry, $var ) use($array_a){
$temp = explode( ".", $var );
$count = 0;
foreach( $temp as $x ) if ( in_array( $x, $array_a ) ) $count++;
if ( $count >= 2 || $carry ) return true;
});
echo "<pre>";
print_r( $result );
echo "</pre>";
这将返回到true
文档:http://php.net/manual/en/function.array-reduce.php
更新:您可以使用array_values 将关联数组转换为基本/数值数组。
$array_b[]["BA.CA.FI.GE.MI"]="01.08";
$array_b[]["BA.GE.MI.NA.RM"]="02.04";
$array_b[]["BA.MI.NA.RM.VE"]="01.45";
$array_a = array("01.03.04.45.06");
//Make $array_a array
$array_a = explode( ".", $array_a[0] );
$result = array_filter($array_b,function( $var ) use($array_a){
$var = array_values($var);
$temp = explode( ".", $var[0] );
$count = 0;
foreach( $temp as $x ) if ( in_array( $x, $array_a ) ) $count++;
if ( $count >= 2 ) return true;
});
echo "<pre>";
print_r( $result );
echo "</pre>";
这将导致:
Array
(
[2] => Array
(
[BA.MI.NA.RM.VE] => 01.45
)
)
http://php.net/manual/en/function.array-values.php