2017-06-07 15 views
1

私は連絡フォームを作成しています。入力フォームには、入力した郵便番号に基づいてsendtoアドレスを変更する必要があります。PHP検索配列

私は谷を検索できる郵便番号の配列を持っているので、入力された郵便番号が実際に配列に含まれているかどうかは分かります。ここで

は、私は、配列の谷の検索方法は次のとおりです。

$districts = json_decode('{ 
"district" : [ 
{ "name": "District A", "email": "[email protected]", "url": "district-a", "postalcodes": ["3311AA","3311AB"] }, 
{ "name": "District B", "email": "[email protected]", "url": "district-b", "postalcodes": ["3317EA","3317EB","3317EC"] }, 
] 
}',true); 

$results = array_filter($districts['district'], function($district) { 
    $key = array_search('3311AB', $district['postalcodes']); 
    return $key; 
}); 

var_dump($results); 

は、今私は郵便番号が発見された地区に基づいて電子メールアドレスを、返却する必要があります。

たとえば、郵便番号3311ABを検索し、それが所属する地区のメールアドレスを返信するにはどうすればよいですか?

+0

を返却する必要があります。コンマを削除する[@ "3317EA"、 "3317EB"、 "3317EC"]}、 ' – Dev

+1

@Dev JSONの構造を整えているためだと思うよ – Justinas

+0

ok)実行しようとしたところエラーが発生しました – Dev

答えて

5

代わりの郵便番号のキーを返す、あなたは間違ったJSONを持っているので、falseを返すjson_decode $district['email']

$emails = []; 

foreach ($districts['district'] as $district) { 
    if (in_array('3311AB', $district['postalcodes'])) { 
     $emails[] = $district['email']; 
    } 
} 

var_dump($emails); 

Example

+0

ありがとうまさに私が必要なものです:)乾杯! – Forza