2017-09-06 86 views
0

我有一個任務來計算句子而不使用str_word_count,我的前輩給了我但我無法理解。有人可以解釋嗎?有人可以向我解釋這個'計算句子'的PHP代碼?

我需要了解變量及其工作原理。

<?php 

$sentences = "this book are bigger than encyclopedia"; 

function countSentences($sentences) { 
    $y = ""; 
    $numberOfSentences = 0; 
    $index = 0; 

    while($sentences != $y) { 
     $y .= $sentences[$index]; 
     if ($sentences[$index] == " ") { 
      $numberOfSentences++; 
     } 
     $index++; 
    } 
    $numberOfSentences++; 
    return $numberOfSentences; 
} 

echo countSentences($sentences); 

?> 

輸出是

+4

如果這實際上是關於計算句子,那麼它就被打破了。 –

+0

它計算單詞而不是句子,它通過逐行掃描字符串中的每個字符並計算單個空格字符來完成此操作。 –

+0

嗨Hana Ganesa;恐怕你的問題對於這個網站來說太廣泛了。堆棧溢出專爲精確的問題和對可識別代碼問題的回答而設計;而你真正要求作爲基本編程結構的介紹。這超出了本網站的範圍;那裏可能有很好的教科書和教程,但這裏並不是我擔心的地方。 –

回答

0

這是非常微不足道的,我會說。 任務是計數單詞句子。句子是字母或空格(空格,新行等)的字符串(字符序列)...

現在,這句話是什麼意思?它是一組獨立的字母,「不要觸摸」其他字母組;義詞(字母組)彼此用空格分隔的(比方說只是一個普通的空格)

所以最簡單的算法來計算的話在於: - $ words_count_variable = 0 - 通過所有的字符,一個接一個地 - 每次找到空格時,意味着一個剛剛結束的新單詞,並且必須增加$ words_count_variable - 最後,您會發現字符串的末尾,意味着在此之前剛剛結束的單詞,因此您最後一次增加$ words_count_variable

以「這是一個句子」。

We set $words_count_variable = 0; 

Your while cycle will analyze: 
"t" 
"h" 
"i" 
"s" 
" " -> blank space: a word just ended -> $words_count_variable++ (becomes 1) 
"i" 
"s" 
" " -> blank space: a word just ended -> $words_count_variable++ (becomes 2) 
"a" 
" " -> blank space: a word just ended -> $words_count_variable++ (becomes 3) 
"s" 
"e" 
"n" 
... 
"n" 
"c" 
"e" 
-> end reached: a word just ended -> $words_count_variable++ (becomes 4) 

所以,4. 4個字數。

希望這有幫助。

0

Basicaly,它只是計數在一個句子的空間的數量。

<?php 

    $sentences = "this book are bigger than encyclopedia"; 

    function countSentences($sentences) { 
    $y = ""; // Temporary variable used to reach all chars in $sentences during the loop 
    $numberOfSentences = 0; // Counter of words 
    $index = 0; // Array index used for $sentences 

    // Reach all chars from $sentences (char by char) 
    while($sentences != $y) { 
     $y .= $sentences[$index]; // Adding the current char in $y 

     // If current char is a space, we increase the counter of word 
     if ($sentences[$index] == " "){ 
     $numberOfSentences++; 
     } 

     $index++; // Increment the index used with $sentences in order to reach the next char in the next loop round 
    } 

    $numberOfSentences++; // Additional incrementation to count the last word 
    return $numberOfSentences; 
    } 

    echo countSentences($sentences); 

?> 

請注意,此功能在幾種情況下會有錯誤的結果,例如,如果您有兩個空格,此功能將計算2個單詞而不是一個單詞。

相關問題