2016-03-18 41 views
0

我有包含姓氏和出生日期集合的2D數組。我試圖在數組中尋找姓氏和出生日期組合匹配,但我不太確定如何做到這一點。PHP查看2d數組是否與樣本數組匹配

所以,搜索的陣列會是這個樣子:

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,因爲Array#1與給定的兩個搜索條件完全匹配。

到目前爲止,我知道如何一次搜索數組中的一個值,但我需要同時搜索兩個值,因爲可能會有幾個數組項具有相同的姓氏或出生日期,但匹配兩者的組合在大多數情況下應該只返回一個結果,如果有的話。

回答

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

+0

不能相信這是那麼容易....大聲笑感謝您的答案。奇蹟般有效! – Austin

0

搜索只有一個功能,並退還全部

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

搜索精確匹配:

匹配的記錄
in_array($arr,array($last_name,$date)) 
相關問題