Removing last comma in PHP?

前端 未结 7 2034
忘掉有多难
忘掉有多难 2020-11-28 16:36

I have this PHP code:

foreach( $wpdb->get_results(
) as $key => $row) {

echo \"[\'\". $row->DATE . \"\',\". $row->total_sales . \"],\";

}


        
相关标签:
7条回答
  • 2020-11-28 16:50

    There are a few approaches:

    1. Push the strings into an array and use implode()
    2. Add the bits to a string, remove the last character, then echo the string
    3. Iterate more explicitly, and on the last iteration, don't output the ','

    Of those options, I'd probably use #1, because it makes the code just a bit more self-documenting.

    0 讨论(0)
  • 2020-11-28 16:50

    You'll need variable to store comma state:

    $comma = ""; ## don't need comma before first element
    foreach( $wpdb->get_results(
        ) as $key => $row) {
    
        echo $comma."['". $row->DATE . "',". $row->total_sales . "]";
        $comma = ",";
    }
    
    0 讨论(0)
  • 2020-11-28 16:53

    php has a trim function, give it a string and the comma.

    $s = trim ($s,",")
    
    0 讨论(0)
  • 2020-11-28 17:03

    I like the implode idea, but I often use the ternary operator to keep everything succinct. Many people don't like the ternary, but it is a very well-known construct in many languages so I use it. In this case, if I'm on the first iteration $results will be empty so I don't insert a comma, otherwise I put a comma in the content before the new data:

    $results = '';
    foreach( $wpdb->get_results() as $key => $row) {
    
        $results .= (empty($results) ? '' : ',') . "['". $row->DATE . "',". $row->total_sales . "]";
    
    }
    echo $results;
    
    0 讨论(0)
  • 2020-11-28 17:07

    put your string in substr() function

    $string = "";
    while ($row = mysql_fetch_array($result)) {
      $string .= $name . ', ';
    }
    echo substr($string, 0, strlen($string) - 2);
    
    0 讨论(0)
  • 2020-11-28 17:08

    I usually do it this way..

    $result = array();
    
    foreach( $wpdb->get_results() as $key => $row ){
    
        $result[] = "['". $row->DATE . "',". $row->total_sales . "]";
    
    }
    
    echo implode( ',', $result );
    

    It's a bit more succinct, (but perhaps more memory inefficient due to the temporary array).

    0 讨论(0)
提交回复
热议问题