Tengo un código fuente ($mi_cadena) en la que tengo mucho código, y en el aparecen correos electronicos, puede aparecer en cualquier parte del código, puede salir repetido el mismo correo 1, 2, 3 ... veces.
Busqué un código que me extrayera solo los correos electrónicos, este:
Código PHP:
<?
/Verificar que tengamos algun contenido en el texto
if (!isset($mi_cadena))
{
echo "Debe introducir una txt de texto.";
}
else
{
stripslashes($mi_cadena);
$exp_email = '[_a-z0-9\-]+(\.[_a-z0-9\-]+)*\@[_a-z0-9\-]+(\.[a-z]{1,4})+';
//Buscar y extraer los e-mails
$encontrado = preg_match_all ("/$exp_email/i", $mi_cadena, $emails, PREG_SET_ORDER);
//Muestra la lista de e-mails encontrados
if ($encontrado)
{
foreach ($emails AS $eml)
{
echo $eml[0]."<br>";
}
}
else
{
echo "No se encontró ninguna dirección de correo electrónico";
}
}
?>
array ([0] => [email protected] [1]=>[2]=>.com)
así con cada correo que encuentre, pero si aparece el mismo correo 3 veces, aparecerá 3 veces en el array y quiero obtener la lista pero sin que se repita.
He buscado en google, me ha aparecido entre otras este foro (como casi siempre), pone que use
$array_resultante = array_unique ($array_a_tratar);
o
array_flip
pero NADA, no me sale, no sirve eso o no consigo hacerlo funcionar con ese tipo de array, ya que el array tiene 3 partes ... y no es un simple array como
$array[0] = [email protected], $array[1] = [email protected] etc etc....
A ver si alguien me ayuda para conseguir obtener la lista de correos sin repetir.
Gracias!