2016-03-18 8 views
0

Ich habe 2D-Array, die Sätze von Nachnamen und Geburtsdaten enthält. Ich versuche, nach einer Kombination aus Nachname und Geburtsdatum im Array zu suchen, aber ich weiß nicht genau, wie ich das machen soll.PHP sehen, wenn 2D-Array Probenfeld entspricht

das Array So würde die Suche wie folgt aussehen:

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 
    ) 
) 

Mein Benutzer die Suchkriterien von $lastName und $dateOfBirth So zum Beispiel würde liefern, sagen meine Benutzer gibt $lastName = "lastName2" und $dateOfBirth = "06/05/1932" Ich mag würde zu Durchsuche das Haupt-Array und überprüfe, ob es eine exakte Übereinstimmung gibt, und true, wenn es eine Übereinstimmung gibt, oder true, wenn keine Übereinstimmung vorliegt.

In diesem Fall sollte True zurückgegeben werden, da Array # 1 eine genaue Übereinstimmung mit den beiden angegebenen Suchkriterien ist.

Bisher weiß ich, wie man das Array nach einem Wert gleichzeitig sucht, aber ich muss beide Werte gleichzeitig suchen, da es möglicherweise mehrere Array - Elemente mit demselben Nachnamen oder demselben Geburtsdatum gibt Kombination von beiden sollte in den meisten Fällen nur ein Ergebnis zurückgeben, wenn überhaupt.

Antwort

1

nur ein Array erstellen, um die Benutzer übermittelten Daten verwenden, und dann in_array() verwenden, um festzustellen, ob das Array genau in dieser Form existiert:

$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

Ich kann nicht glauben, dass es so einfach war .... lol Danke für die Antwort. Klappt wunderbar! – Austin

0

Suche nur ein Merkmal und kehren alle Datensätze, die passen:

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

Suche genaue Übereinstimmung:

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