PHP查看2d数组是否与样本数组匹配

时间:2016-03-18 18:30:54

标签: php arrays multidimensional-array match

我有二维数组,包含姓氏和出生日期。我正在尝试在阵列中寻找姓氏和出生日期组合匹配,但我不太清楚如何做到这一点。

因此,要搜索的数组看起来像这样:

Array ( 
    [0] => Array ( 
        [0] => lastName1 
        [1] => 05/24/1937 
    ) 
    [1] => Array ( 
        [0] => lastName2 
        [1] => 06/05/1932 
    ) 
    [2] => Array ( 
        [0] => lastName3 
        [1] => 03/04/1926 
    ) 
)

我的用户将提供$lastName$dateOfBirth的搜索条件 例如,假设我的用户输入$lastName = "lastName2"$dateOfBirth = "06/05/1932"我想搜索主数组并查看是否存在完全匹配,如果匹配则返回true,如果没有匹配则返回false

在这种情况下,它应该返回true,因为数组#1与给定的两个搜索条件完全匹配。

到目前为止,我知道如何一次搜索数组中的一个值,但我需要同时搜索这两个值,因为可能有几个具有相同姓氏或出生日期的数组项,但匹配组合在大多数情况下,两者都应该只返回一个结果。

2 个答案:

答案 0 :(得分:1)

只需使用用户提交的数据创建一个数组,然后使用in_array()查看该数组是否以完全相同的形式存在:

$searcher = array(
    array( 'surname1', '05/24/1937' ),
    array( 'surname2', '06/05/1932' ),
    array( 'surname3', '03/04/1926' )
);

$toSearch = array( $lastName, $dateOfBirth );

if( in_array($searcher, $toSearch))
{
    echo 'match found'
}
else
{
    'nothing found';
}

Demo

答案 1 :(得分:0)

只搜索一个功能并返回匹配的所有记录:

array_filter($arr,function ($item) use ($filter_index,$filter_val) { return $item[$filter_index]==$filter_val; });

搜索完全匹配:

in_array($arr,array($last_name,$date))