PHP搜索数组

时间:2017-06-07 09:15:23

标签: php

我正在创建一个联系表单,需要根据输入的邮政编码更改发送地址。

我有一个邮政编码数组,我可以搜索到这一点,以便我知道输入的邮政编码是否实际上在数组中。

以下是我通过数组搜索的方式:

$districts = json_decode('{
 "district" : [ 
 { "name": "District A", "email": "abc@example.com", "url": "district-a", "postalcodes": ["3311AA","3311AB"] },
 { "name": "District B", "email": "xyz@example.com", "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并返回其所属地区的电子邮件地址?

1 个答案:

答案 0 :(得分:5)

您需要返回$district['email']

,而不是返回邮政编码的密钥
$emails = [];

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

var_dump($emails);

Example