2015-05-16 3 views
2

Это является отправной точкой я был дан:Как использовать последнюю букву каждого слова в предложении в PHP?

<?php 

function capitaliseLastLetterOfEachWord($string){ 

    return $string; 

} 

echo capitaliseLastLetterOfEachWord("The quick brown fox jumps over the lazy dog"); 

?> 

Это, насколько я получил, и он дал мне последние буквы каждого слова в верхний регистр:

<?php 

function capitaliseLastLetterOfEachWord($string){ 

    $separate = explode(" ", $string); 

    foreach($separate as $word) { 
     $lastword = $word[strlen($word) - 1 ]; 
     echo strtoupper($lastword) . "<br>"; 
    } 
} 

echo capitaliseLastLetterOfEachWord("The quick brown fox jumps over the lazy dog"); 

?> 
+1

отступы ваш код в следующий раз, вставить/выделить все , CTRL-K, save, * done like dinner * ;-) –

+0

И в чем вопрос? – splash58

+0

Спасибо Фред, я сохраню записку. – DazedTim

ответ

1
function capitaliseLastLetterOfEachWord($string){ 
    return strrev(ucwords(strrev($string))); 
} 

шаги:

  1. обратного строку
  2. использование ucwords с заглавной буквой каждых обращенно слов
  3. реверсом строки обратно

Если вы хотите, чтобы удалить любые существующие capitalistion первыми, изменить его к этому

return strrev(ucwords(strrev(strtolower($string))));

+0

это должно работать просто отлично, избили меня прямо на него lol: D +1 – Ghost

+0

Спасибо rjdown! это блестяще :) – DazedTim

2

остальным уже дал короткий путь, просто чтобы объяснить, что вы делаете прямо сейчас, вы просто вносите изменения в последнюю строку и не возвращаете ее. Вы должны предназначаться последний символ затем внести изменения, просто & добавить ссылку в Еогеасп, то не забудьте возвращения значения:

$lastword = $word[strlen($word) - 1 ]; 
// you're not returning and appending your changes 

<?php 

function capitaliseLastLetterOfEachWord($string){ 
    $separate = explode(" ", strtotlower($string)); 
    foreach($separate as &$word) { // add reference 
     $word[strlen($word) - 1] = strtoupper($word[strlen($word) - 1]);   
     // point to it^,  the change^
    } 
    return implode(' ', $separate); // don't forget to return 
} 

echo capitaliseLastLetterOfEachWord("The quick brown fox jumps over the lazy dog"); 
+0

Я не был уверен, где я собираюсь с моей попыткой, но это здорово, что вы мне это объяснили, я ценю это, спасибо :) – DazedTim

+0

sure @Tim рад, что это помогло – Ghost