2016-11-10 2 views
1

Ich verwende while-Schleife Werte aus meiner Datenbank zu bekommen und mein Ergebnis ist wie:Letzte Komma aus String in While-Schleife in PHP entfernen?

enter image description here

I Komma nach dem letzten Wert der Schleife entfernen möge.

i verwendeten Code wie ..

<?php 
$cat = get_terms('car_category'); // you can put your custom taxonomy name as place of category. 
     foreach ($cat as $catVal) { 
      echo '<b>'.$catVal->name.'</b>'; 
      $postArg = array('post_type'=>'cars','posts_per_page'=>5,'order'=>'desc', 
           'tax_query' => array(
                array(
                 'taxonomy' => 'car_category', 
                 'field' => 'term_id', 
                 'terms' => $catVal->term_id 
                ) 
          )); 

      $getPost = new wp_query($postArg); 
      global $post; 

      if($getPost->have_posts()){ 
       $str = ""; 
       echo '<div class="yearDiv">'; 
        while ($getPost->have_posts()):$getPost->the_post(); 
         $str =rtrim($post->post_title, ","); 
         echo '<span>'.$str.',</span>'; 
        endwhile; 
       echo '</div>'; 
      } 
     } 
?> 

i verwendet rtrim, substr-Funktion für sie auch, aber das Entfernen Komma nicht.

Antwort

1

Nehmen Sie die Post-Titel in einem Array und Verwenden statt Implode ..

<?php 
$cat = get_terms('car_category'); // you can put your custom taxonomy name as place of category. 
     foreach ($cat as $catVal) { 
      echo '<b>'.$catVal->name.'</b>'; 
      $postArg = array('post_type'=>'cars','posts_per_page'=>5,'order'=>'desc', 
           'tax_query' => array(
                array(
                 'taxonomy' => 'car_category', 
                 'field' => 'term_id', 
                 'terms' => $catVal->term_id 
                ) 
          )); 

      $getPost = new wp_query($postArg); 
      global $post; 

      if($getPost->have_posts()){ 
       $str = array(); 

        while ($getPost->have_posts()):$getPost->the_post(); 
         $str[] = $post->post_title; 

        endwhile; 
      } 
      echo '<div class="yearDiv">'; 
      echo '<span>'.implode(', ', $str).'</span>'; 
      echo '</div>' 
     } 
?> 
+0

Danke @prakash es funktioniert jetzt. – maddy

+0

Willkommen Bro, akzeptieren Sie die Antwort –

0

Haben Sie versucht, die rtrim in der While-Schleife zu entfernen, aber nach dem Schleifen machen Sie die rtrim-Funktion? Wie folgt aus:

echo '<div class="yearDiv">'; 
    while ($getPost->have_posts()):$getPost->the_post(); 
     $str .= $post->post_title . ","; 
    endwhile; 
    echo '<span>'.rtrim($str, ",").'</span>'; 
echo '</div>'; 
+0

Ja, ich versuchte es, aber es gibt mir nur ersten Wert der Schleife sein muss wie .. Aprilia Dorsoduro 750 ABS, PRI PRIMODE, Yamaha XS650, Zero S, – maddy

+0

Ah ja, du musst concat für die Strings verwenden .. klebst all deine $ post-> post_title .. versuche es diesmal wieder. –

3

Nutzen rtrim dafür. Stellen Sie nur sicher, dass am Ende des Zeichenkettenraums nicht nach Komma stehen sollte.

$yourString = rtrim($yourString, ","); 
0
echo '<div class="yearDiv">'; 
$str = ""; 
while ($getPost->have_posts()):$getPost->the_post(); 
    $str .= $post->post_title.","; 
endwhile; 

versuchen

if(substr($str, -1) == ',') { 
    $str = substr($str, 0, -1); 
} 

oder

$str = rtrim($str,","); 

...

echo '<span>'.$str.'</span>'; 
echo '</div>'; 
0

Php eine Trimm-Funktion wie dies

<?php 
$str = "item one ,item tow,item three,item 4,"; 
echo trim($str, ","); 
?> 

der Ausgang

item one ,item tow,item three,item 4 
Verwandte Themen