v2.5.2
Giriş yap

PHP Etiket sistemini nasıl yapabilirim

kaandenizblkn
435 defa görüntülendi ve 1 kişi tarafından değerlendirildi

Merhabalar. Php ile veri tabanına etiketleri giriyorum
etiketler ajax_question_add.php dosyama etiket,sistemi
olarak yani virgül ile geliyor
bunu saydırıp 3 tane etiket var ise döngüye sokup vt ye ekletiyorum

$question_tags = "etiket,sistemini,deniyorum";
$etiketler = explode(',', $question_tags);
$count_tags = count($etiketler);

if'e sokup count 3 den büyükse devam ediyorum sisteme
fakat şunu bir türlü kuramadım
1) aynı etkiket var ise birisini saymayacak
2 ) iki tane virgülü yan yana koyunca boşluk sayıyor ve bunun da önüne geçemem gerekiyor yani etiket içindeki yazılar en az 3 karakterden oluşması gerekiyor

bu konuda destekleriniz bekliyorum

Cevap yaz
Cevaplar (3)
kargasa1982
792 gün önce

etiket stringini parçaladıktan sonra her bir parçayı önce uzunluk kontrolünden geçir. uygun uzunlukta olanları başka bir dizine kaydet ve bunu yaparken dizinde olup olmadığını sorgula. Oluşturduğun 2. dizindeki eleman sayısını alarak gerekli işlemleri yapabilirsin.

$myLabels = array();
$labelString = "benim,ilk,etiket,denemem,ilk,burada";
$labelParts = explode(",",$labelString);

for($i=0;$i<count($labelParts);$i++){
    $label = $labelParts[$i];
    
    if(strlen($label)>=3){ // gelen etiket uzunluğun en az 3 karakter ise
        if(!in_array($label,$myLabels){ // gelen etiket belirtilen dizi içinde var mı?
            $myLabels[] = $label; // gelen etiketi dizine ekle
        }    
    }
}

$labelCount = count($myLabels); // bu kod çalıştığında 5 değeri dönecek ve içinde benzersiz etikelrerin olacak.


kaandenizblkn
797 gün önce

$question_tags = "kaan,,,,";
$etiketler = explode(',', $question_tags);
$tag_count = 0;
foreach( $etiketler as $anahtar => $deger ){

if(strlen($deger) >= 3  && strlen($deger) <= 24 ){
    $tag_count++;
}                             

}
echo $tag_count;

bunu buldum suan calısıyor fakat aynı etiketleri yapmam gerekiyor birde onun hakkında fikiri olan varsa cevap verebilir mi lütfen ?