2016-03-18 21 views
0

Son adlar ve doğum tarihleri ​​içeren 2B dizim var. Dizi içinde bir soyadı ve doğum tarihi combo maçı aramaya çalışıyorum, ama bunu nasıl yapacağından emin değilim.PHP, 2d dizisinin örnek diziyle eşleşip eşleşmediğini görmek için bkz.

Yani, arama dizi şöyle görünecektir:

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

Yani örneğin $lastName ve $dateOfBirth arama kriterlerini sağlayacağını Benim kullanıcı, benim kullanıcı İsterim $lastName = "lastName2" ve $dateOfBirth = "06/05/1932" girer demek Ana dizide arama yapın ve tam eşleşme olup olmadığına bakın ve eşleşme yoksa bir eşleşme veya yanlış varsa true değerini döndürün.

Bu durumda, # 1 dizisi, verilen arama ölçütlerinin her ikisiyle tam eşleştiğinden true olarak dönmelidir.

Şimdiye kadar diziyi tek seferde bir değer için nasıl arayacağımı biliyorum, ancak aynı adı veya doğum tarihine sahip birkaç dizi öğe olabileceğinden, aynı anda iki değeri de aramam gerekiyor. Her ikisinin bir arada olması, çoğu durumda, yalnızca bir sonucu döndürür.

cevap

1

Sadece kullanıcılar tarafından gönderilen verileri kullanarak bir dizi oluşturmak ve sonra dizi bu kesin biçimde olup olmadığını görmek için in_array() kullanın: sadece tek bir özellik

$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

Bu kadar kolay olduğuna inanamıyorum .... lol Cevabınız için teşekkürler. ÇALIŞIYOR bir cazibe gibi! – Austin

0

Arama ve dönüş tüm

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

Arama tam eşleme:

eşleşen kayıtlar
in_array($arr,array($last_name,$date)) 
İlgili konular