Potrzebuję efektywnego rozwiązania, które będzie szybko działać na dużej ilości danych.
Mam np. bazę maili, z której potrzebuje:
- wydobyć maile onetu we wszystkich domenach
- przefiltrowanie tej bazy aby nie zawierała maili z onetu
Tablica:
$maile_onet = array('onet.pl', 'op.pl', 'poczta.onet.pl', 'onet.eu', 'onet.com.pl', 'vp.pl', 'spoko.pl', 'vip.onet.pl', 'autograf.pl', 'opoczta.pl', 'buziaczek.pl', 'adres.pl', 'amorki.pl', 'poczta.onet.eu');
Można to zrobić za pomocą strpos() ale wydaje mi się, że nie jest to wydajne.
$result = mysql_query("SELECT email FROM maile");
while($r = mysql_fetch_array($result))
{
foreach($maile_onet as $kay=>$wartosc)
{
$pos = strpos($r['email'], $wartosc);
if ($pos !== false)
{
echo $r['email'].'<br />';
}
}
}
Proszę o jakiś lepszy przykład tych dwóch moich problemów.