caneraltinel adlı üyeden alıntı

Bu kod önce her bir elemanı kontrol eder ve her bir değer için bir "anahtar-değer" sözlüğüne ekleme yapar. Daha sonra, sözlükteki her bir değer için, eğer birden fazla anahtar varsa, bu anahtarları ekrana yazdırır.

 

Örneğin, aşağıdaki örnekteki dizi örneğinde, "Melih" değeri üç kez bulunuyor ve bu değere sahip anahtarlar 0, 4 ve 7'dir. Bu nedenle, PHP kodu bu anahtarları ve değeri ("Melih") ekrana yazdıracaktır.

Kendine göre uyarlayabilirsin. Umarım bu yardımcı olur.

<?php
$dizi = array("Melih", "Şüheda", "Zeliha", "Mehmet", "Melih", "Murat", "Selçuk", "Melih");
$anahtarlar = array();

for ($i = 0; $i < count($dizi); $i++) {
    if (!isset($anahtarlar[$dizi[$i]])) {
        $anahtarlar[$dizi[$i]] = array($i);
    } else {
        array_push($anahtarlar[$dizi[$i]], $i);
    }
}

foreach ($anahtarlar as $anahtar => $deger) {
    if (count($deger) > 1) {
        echo $anahtar . " anahtarına sahip değer " . $dizi[$deger[0]] . " " . implode(",", $deger) . " indekslerinde bulunuyor." . "\n";
    }
}
?>

 Üstadım aynı olan değerlerin sadece bir tanesini göstermesi diğerlerini yok sayması için kodu nasıl güncellemeliyiz?