• 09-10-2021, 03:37:58
    #1
    Şöyle: 'hide-desktop,hide-tablet,hide-mobile' şeklinde bir array içeriği var. Bunları html'de class ismi olarak kullanacağım için hide-desktop hide-tablet hide-mobile şeklinde yazılması lazım. Sanırım PHP'nin explode ile yapılıyor bu işlem ancak ilk defa yaptığımdan nasıl yapacağımı anlamadım?

    Şöyle yaptım olmadı:
    $cozulmusdize = explode( ' ', $cozulecekdize );
    echo ile $cozulecekdize'ye bakınca ekrana olması gerektiği gibi hide-desktop,hide-tablet,hide-mobile yazılıyor ancak echo $cozulmusdize yazınca Array yazıyor. Nerede yanlış yapıyorum?
  • 09-10-2021, 03:39:55
    #2
    <?php
    $dizi = array('aclasi','bclasi','cclasi');
    
    echo $dizi[0]; // 1 2 3 gibi kullanabilirsiniz
    ?>
    explode gerek yok eğer illa kullanıcam diyorsanız

    $cozulmusdize[0] $cozulmusdize[1] gibi kullanmanız lazım
  • 09-10-2021, 03:41:47
    #3
    Böldükten sonra diziye çevirdiği için indisleri almanız lazım hocam
  • 09-10-2021, 03:46:44
    #4
    Foreach($cozulmusdize as $ccc => $deger)
    { echo $deger;}
  • 09-10-2021, 03:47:09
    #5
    $cozulmusdize = str_replace( ' ,',' ', $cozulecekdize );
  • 09-10-2021, 03:58:16
    #6
    Sayim adlı üyeden alıntı: mesajı görüntüle
    <?php
    $dizi = array('aclasi','bclasi','cclasi');
    
    echo $dizi[0]; // 1 2 3 gibi kullanabilirsiniz
    ?>
    explode gerek yok eğer illa kullanıcam diyorsanız

    $cozulmusdize[0] $cozulmusdize[1] gibi kullanmanız lazım
    Herhangi bir değeri seçmek istemiyorum hocam. Tüm değerleri arasında boşluk olacak şekilde değişkene atamak istiyorum. Array içeriğini ben yazamıyorum, Wordpress panelindeki ayardan geliyor.

    gurbuzemre adlı üyeden alıntı: mesajı görüntüle
    Böldükten sonra diziye çevirdiği için indisleri almanız lazım hocam
    Valla hocam array içeriği ne olursa olsun, kaç tane olursa olsun . yerine boşluk olarak bir değişkene tanımlayabilsek istediğim yerde kullanabileceğim.

    website adlı üyeden alıntı: mesajı görüntüle
    Foreach($cozulmusdize as $ccc => $deger)
    { echo $deger;}
    Hata veriyor hocam: Warning: Invalid argument supplied for foreach()

    berkimren adlı üyeden alıntı: mesajı görüntüle
    $cozulmusdize = str_replace( ' ,',' ', $cozulecekdize );
    Aynı sonucu verdi hocam. virgüllerin yerine boşluklar gelmedi.
  • 09-10-2021, 04:27:01
    #7
    Doğru anladıysam tam tersi implode kullanmalısınız. Explode ile metin içindeki belirli karakterin etrafındakileri arraya dönüştürür. Implode ise array bir değeri string yapar.

    Örnek:
    echo implode(' ', $array);
  • 09-10-2021, 15:42:03
    #8
    Scarecrow adlı üyeden alıntı: mesajı görüntüle
    Doğru anladıysam tam tersi implode kullanmalısınız. Explode ile metin içindeki belirli karakterin etrafındakileri arraya dönüştürür. Implode ise array bir değeri string yapar.

    Örnek:
    echo implode(' ', $array);
    Yok hocam sanırım yapmaya çalıştığımı tamamen anlatmadan olmayacak. Şöyle açıklamayım: Sitelerin alt köşesinde yukarı çık butonu olur ya işte onu Icon olarak ekledim ancak bunun masaüstü, tablet ve mobil olarak kapatıp açma seçeneğinin olması gerekiyordu. Wordpress paneline BURADAKI ayarları ekledim.

    Bu arar bana $back_to_top_order sabitini oluşturuyor. Seçenekler işaretlendiğinde dizi olarak desktop,tablet,mobile geliyor. (mesela tableti seçmediğimde desktop,mobile geliyor, teki seçili olunca sadece o geliyor)

    Aşağıdaki HTML kodunda BURAYA yazdığım yere ise seçili olmadığında hide-desktop hide-tablet hide-mobil yazdırmam gerekiyor ki onlara CSS tanımlayıp gizleyebileyim.

    <i class="backtotop BURAYA i-chevron-up" onClick="scrollToTop()"></i>
    Dizi'yi dizin'e dönüştürmeden yapılabilir mi bilmiyorum. Burada desktop, tablet ve mobil seçenekleri için kontrol ekleyip yoksa şunu yaz şeklinde bir şey yapmak gerekiyor. Mesela $back_to_top_order içinde desktop yoksa(seçili değilse yok) BURAYA yazan yere hide-desktop yazılacak.
  • 09-10-2021, 17:00:19
    #9
    SkyGhostAir adlı üyeden alıntı: mesajı görüntüle
    Yok hocam sanırım yapmaya çalıştığımı tamamen anlatmadan olmayacak. Şöyle açıklamayım: Sitelerin alt köşesinde yukarı çık butonu olur ya işte onu Icon olarak ekledim ancak bunun masaüstü, tablet ve mobil olarak kapatıp açma seçeneğinin olması gerekiyordu. Wordpress paneline BURADAKI ayarları ekledim.

    Bu arar bana $back_to_top_order sabitini oluşturuyor. Seçenekler işaretlendiğinde dizi olarak desktop,tablet,mobile geliyor. (mesela tableti seçmediğimde desktop,mobile geliyor, teki seçili olunca sadece o geliyor)

    Aşağıdaki HTML kodunda BURAYA yazdığım yere ise seçili olmadığında hide-desktop hide-tablet hide-mobil yazdırmam gerekiyor ki onlara CSS tanımlayıp gizleyebileyim.

    <i class="backtotop BURAYA i-chevron-up" onClick="scrollToTop()"></i>
    Dizi'yi dizin'e dönüştürmeden yapılabilir mi bilmiyorum. Burada desktop, tablet ve mobil seçenekleri için kontrol ekleyip yoksa şunu yaz şeklinde bir şey yapmak gerekiyor. Mesela $back_to_top_order içinde desktop yoksa(seçili değilse yok) BURAYA yazan yere hide-desktop yazılacak.
    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.