如何使用数组搜索数组中的元素

时间:2015-02-18 10:47:03

标签: php

在这个数组中搜索元素的最佳方法是什么?

    $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'),            
    );

2 个答案:

答案 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";
    }
}