我有二维数组,包含姓氏和出生日期。我正在尝试在阵列中寻找姓氏和出生日期组合匹配,但我不太清楚如何做到这一点。
因此,要搜索的数组看起来像这样:
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与给定的两个搜索条件完全匹配。
到目前为止,我知道如何一次搜索数组中的一个值,但我需要同时搜索这两个值,因为可能有几个具有相同姓氏或出生日期的数组项,但匹配组合在大多数情况下,两者都应该只返回一个结果。
答案 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';
}
答案 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))