Trovare valori duplicati in array con PHP
Un problema che si potrebbe porre, quando si parla di array, è quello dei duplicati.
Supponiamo di avere un form per l'invio multiplo di email:
<form action="#" method="post">
<dl>
<dt>
<label >EMAIL</label>
</dt>
<dd><input type="text" name="emailam[]" value="a@gm.com" /></dd>
</dl>
<dl>
<dd><input type="text" name="emailam[]" value="a@gm.com" /></dd>
</dl>
<dl>
<dd><input type="text" name="emailam[]" value="a@gm.com" /></dd>
</dl>
<dl>
<dd><input type="text" name="emailam[]" value="a@gm.com" /></dd>
</dl>
<dl>
<dd><input type="text" name="emailam[]" value="a@gm.com" /></dd>
</dl>
<dl>
<dd>
<input type="submit" value="Invia" name="btn_email" />
</dd>
</dl>
</form>
Vogliamo inviare le email solo agli indirizzi unici; nell'esempio invece manderemmo 4 volte l'email allo stesso indirizzo e una all'ultimo indirizzo (che è diverso).
Come possiamo fare?
Molto semplicemente usando la funzione array_unique().
Questa funzione accetta come mimino un parametro, che è l'array da controllare, e restituisce un array con i valori unici.
Nell'esempio darebbe solo due indirizzi.
Ecco come usarlo:
if ($_SERVER['REQUEST_METHOD'] == "POST" && isset($_POST['btn_email'])) {
$emailSended = $_POST['emailam'];
$emailUnique = array_unique($emailSended);
foreach($emailUnique as $eq) {
echo $eq . '
';
}}
Così facendo verranno mostrate tutte le email uniche tra quelle che avete messo nel form.
Come vedete il suo utilizzo è molto semplice!
php array_unique array
Commentami!