Get the last word of a string

后端 未结 7 2287
时光说笑
时光说笑 2020-12-15 04:10

I have tried a few things to get a last part out I done this:

$string = \'Sim-only 500 | Internet 2500\';
preg_replace(\"Sim-Only ^([1-9]|[1-9][0-9]|[1-9][0-         


        
相关标签:
7条回答
  • 2020-12-15 04:50

    This should work for you:

    $str = "fetch the last word from me";
    $last_word_start = strrpos ( $str , " ") + 1;
    $last_word_end = strlen($str) - 1;
    $last_word = substr($str, $last_word_start, $last_word_end);
    
    0 讨论(0)
  • 2020-12-15 04:52

    If you want to wrap the last word with a span:

    <?php
    /**
     * Wrap last word with span
     * @author: Elron
     * https://stackoverflow.com/questions/18612872/get-the-last-word-of-a-string
     */
    function wrap_last_word($string) {
        // Breaks string to pieces
        $pieces = explode(" ", $string);
    
        // Modifies the last word
        $pieces[count($pieces)-1] = '<span class="is-last-word">' . $pieces[count($pieces)-1] . '</span>';
    
        // Returns the glued pieces
        return implode(" ", $pieces);
    }
    
    wrap_last_word('hello this is wrapped');
    // returns this:
    // hello this is <span class="is-last-word">wrapped</span>
    
    0 讨论(0)
  • 2020-12-15 04:59

    It depends on what you try to do (it is hard to understand from your description) but to get the last word from a string you can do:

    $split = explode(" ", $string);
    
    echo $split[count($split)-1];
    

    See How to obtain the last word of a string for more information.

    0 讨论(0)
  • 2020-12-15 05:05

    If you're after the last word in a sentence, why not just do something like this?

    $string = '​Sim-only 500 ​| Internet 2500';
    $pieces = explode(' ', $string);
    $last_word = array_pop($pieces);
    
    echo $last_word;
    

    I wouldn't recommend using regular expressions as it's unnecessary, unless you really want to for some reason.

    $string = 'Retrieving the last word of a string using PHP.';
    preg_match('/[^ ]*$/', $string, $results);
    $last_word = $results[0]; // $last_word = PHP.
    

    Using a substr() method would be better than both of these if resources/efficiency/overhead is a concern.

    $string = 'Retrieving the last word of a string using PHP.';
    $last_word_start = strrpos($string, ' ') + 1; // +1 so we don't include the space in our result
    $last_word = substr($string, $last_word_start); // $last_word = PHP.
    

    it is faster, although it really doesn't make that much of a difference on things like this. If you're constantly needing to know the last word on a 100,000 word string, you should probably be going about it in a different way.

    0 讨论(0)
  • 2020-12-15 05:06

    The existing solutions all work fine, but I wanted a one-liner. explode() will split a sentence into words, but trying to pass it directly into array_pop() or end() gives a "Only variables should be passed by reference" notice. array_slice() to the rescue:

    $string = 'Sim-only 500 | Internet 2500';
    echo array_slice(explode(' ', $string), -1)[0];
    
    0 讨论(0)
  • 2020-12-15 05:09

    Here is another way to get the last word from a string

    $my_string = "fetch the last word from me";
     
    // Explode the string into an array
    $my_string = explode(" ", $my_string);
    
    // target the last word with end() function 
    $my_string = end($my_string);
    
    echo $my_string;
    

    Result me

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