PHP 查看二维数组是否匹配示例数组

PHP see if 2d array matches sample array

我有一个包含姓氏和出生日期组的二维数组。我正在尝试在数组中查找姓氏和出生日期的组合匹配项,但我不太确定该怎么做。

因此,要搜索的数组将如下所示:

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" 我想搜索主数组并查看是否存在完全匹配,如果存在匹配则为 return true,如果存在则为 false没有匹配项。

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

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

只需使用用户提交的数据创建一个数组,然后使用 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

仅按一项特征搜索 return 所有匹配的记录:

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

搜索完全匹配:

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