在这个数组中搜索元素的最佳方法是什么?
$emailsArray= array(
'http://gmail.com' => 'gmail.com',
'http://poczta.onet.pl' => array('onet.pl','vp.pl', 'op.pl', 'spoko.pl', 'poczta.onet.pl', 'onet.eu', 'onet.com.pl', 'opoczta.pl','autograf.pl','vip.pl','vip.onet.pl'),
'http://poczta.wp.pl' => 'wp.pl',
'http://poczta.o2.pl' => 'o2.pl',
'http://mail.tlen.pl' => 'tlen.pl',
'http://poczta.interia.pl' => array('interia.pl','poczta.fm','interia.eu'),
'http://poczta.gazeta.pl' => 'gazeta.pl',
'http://pl.mail.yahoo.com' => array('yahoo.pl','yahoo.com'),
);
答案 0 :(得分:0)
做一个foreach为$ key => $ value,其中if is_array($ value)foreach $ value为$ key => $ VAL
然后只检查这些循环中的匹配
答案 1 :(得分:0)
根据您搜索的内容,您可以按照以下方式执行操作:
$emailDomain = 'o2.pl'; //grab this from an email you want to check
$emailsArray= array(
'http://gmail.com' => 'gmail.com',
'http://poczta.onet.pl' => array('onet.pl','vp.pl', 'op.pl', 'spoko.pl', 'poczta.onet.pl', 'onet.eu', 'onet.com.pl', 'opoczta.pl','autograf.pl','vip.pl','vip.onet.pl'),
'http://poczta.wp.pl' => 'wp.pl',
'http://poczta.o2.pl' => 'o2.pl',
'http://mail.tlen.pl' => 'tlen.pl',
'http://poczta.interia.pl' => array('interia.pl','poczta.fm','interia.eu'),
'http://poczta.gazeta.pl' => 'gazeta.pl',
'http://pl.mail.yahoo.com' => array('yahoo.pl','yahoo.com'),
);
foreach ($emailsArray as $host => $domains) {
if (is_string($domains)) {
$domains = array($domains);
}
if (in_array($emailDomain, $domains)) {
echo "The email is hosted at $host\n";
}
}