2016-03-18 8 views
0

私は、姓と生年月日のセットを含む2D配列を持っています。私は、配列内の姓と生年月日のコンボマッチを検索しようとしていますが、それをどうやって行うのかあまりにも分かりません。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を返します。

Array#1は、指定された検索条件の両方に完全に一致するため、この場合はtrueを返す必要があります。

これまでは一度に1つの値の配列を検索する方法を知っていましたが、同じ姓または生年月日を持つ複数の配列アイテムが存在する可能性があるので、両方の値を同時に検索する必要があります両方のコンボは、ほとんどの場合、1つの結果が返ってくるだけです。

答えて

1

ただ、ユーザーが投稿したデータを使用してアレイを作成し、配列は、その正確な形で存在するかどうかを確認するためにin_array()を使用:1つの特徴だけで

$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)) 
関連する問題