array içinde benzersiz olanları almak
<?php
for ($i = 0; $i < count($tags); $i++) {
$keyw = array_map('trim', explode(',', $tags[$i]["keyw"]));
foreach ($keyw as $keyw) {
?>
<?php echo $keyw; ?>
tag sayfamda aynı tag'a sahip olan yazıları listeletiyorum. Bu arama sonucu gelen yazıların tüm taglarını da sayfada göstermek istiyorum.
Fakat farklı yazılarından gelen aynı olan kelimeleri dışlayamadım. 3 makale listelenmişse aynı kelimeler 3 defa tekrarlıyor gibi.
sanırım array_unique kullanmam lazım ama bir türlü nerde hangi aşamada kullanacağım çözemedim.
Soru hatalı mı? 👎
Eğer sorunun kurallara aykırı olduğunu düşünüyorsanız lütfen bize bildirin!
Cevaplar (4)
şimdi lazım oldu bana müşterinin projesini yaparken şansına bu konuyu gördüm .
yapmamız gereken şey; array_flip() ile value ile keylerin yerini değiştirdikten sonra array_uniqe() kullanacaksın sonrasında ise array_flip() ile tekrar uniq işlemi yaptığımız keyleri valueye aktaracağız ve
ilk baştaki hale getireceğiz ve sonuç istediğimiz gibi çıkacak
örnek kod şu şekilde :
<?php
$dataValue = array_flip($label);
$keysa = array_unique($dataValue);
$label = array_filter(array_values(array_flip($keysa)));
?>
bu arada Tayfun hocama selam olsun.Furkan Asan ben . Belki tanır veya hatırlar :)
Şu şekil kullandım:
for ($i = 0; $i < count($tags); $i++) {
$tag = array_values(array_unique($tags[$i]["keyw"]));
print_r($tag);
Hata: array_unique() expects parameter 1 to be array, string given in...
Verdiğiniz kodu for dan öncede sonrada eklesemde hata veriyor.
şöyle kullanman gerekiyor;
$tags = ['test', 'deneme', 'test', 'test', 'prototurk'];
$tags = array_values(array_unique($tags));
print_r($tags);