$cozulecekdize echo ile yazdırdığınızda "hide-desktop,hide-tablet,hide-mobile" dönüyorsa, uğraştığınız array değil string bir değer. sorunun başında array dediğiniz için cevap veren herkes haklı olarak oradan yürümüş.
şunu deneyin;
echo strtr($cozulecekdize, ',', ' ');
Evet hocam aradığım çözüm buymuş. Dediğiniz gibi yapınca oldu. PHP terimlerine de alışmadığım için yanlış ifade kullanmışım belli ki. Değişkeni explode edince array oluyormuş, ben
explode edip array yapmadan bunu yapamayacağız sanmıştım zira kullanım amacını da şimdi öğrenmiş oluyorum.
Hocam tamam dediğim implode fonksiyonu ile bunu yapabiliyorsunuz. Fakat içine biraz daha detay katmanız gerekli. Verilerinizin if ile değil otomatik array olarak geldiğini varsayıyorum şu an.
$array = ["desktop", "tablet", "mobile"];
$s = [];
foreach($array as $val)
{
$s[] = "hide-{$val}";
}
echo implode(' ', $s);Çıktısı da: hide-desktop hide-tablet hide-mobile
Ne gelirse gelsin başına hide ekleyerek yazar. Eğer solda yada sağda fazladan boşluk olursa ltrim, rtrim ile temizlersiniz.
Array içeriğiniz eğer böyle gelmiyorsa ve işin içine bir de if giriyorsa yani kullanmak zorundaysanız o başka, o zaman basit bir algoritma kurmalısınız.
Evet hocam böyle oldu ancak boşken hide- yazıyor ekranda. ["desktop", "tablet", "mobile"] yerine değişkeni ekledim, belki o yüzden oldu. Değişkene var_dump ile bakınca şöyle görünüyor:
array (size=3) 0
=> string
'desktop' (length=7) 1
=> string
'tablet' (length=6) 2
=> string
'mobile' (length=6)
Bunun yerine explode etmediğim string haline aynı şeyi yapabilir miyiz? Yani
var_dump ile baktığımda şöyle yazan haline:
:string
'desktop,tablet,mobile' (length=21)