PHP Etiket sistemini nasıl yapabilirim
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
Soru hatalı mı? 👎
Eğer sorunun kurallara aykırı olduğunu düşünüyorsanız lütfen bize bildirin!
Cevaplar (3)
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.
$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 ?