count($ array)在if语句中不起作用

时间:2015-07-20 13:50:31

标签: php arrays

我尝试将fade类应用于100个字或更多字的所有字符串。

这是我到目前为止的代码:

$descArray = explode(" ", stripslashes($longDesc));
echo "word count for array: ".count($descArray);
$shortDesc = implode(" ", array_splice($descArray, 0, 100));
if(count($descArray) >= 100) {
    print "<div class='fade'>".$shortDesc."</div>";
} else {
    print "<div>".$shortDesc."</div>";
}

根据审核后的源代码,fade类仅适用于(看起来像是)200或更长的长度 - 即使它被指定将该类应用于所有长度为100或更长的字符串。我测试了一个lorem生成器 - 一个分为199的数组的字符串从未得到应用它的淡入淡出类,但是当它被分成200个数组时它就完成了。

我确定我在这里犯了一个愚蠢的错误,但它是什么?

3 个答案:

答案 0 :(得分:0)

为什么不使用str_word_count() php函数执行您尝试实现的操作?

http://php.net/manual/en/function.str-word-count.php

试试这个:

$descArray = explode(" ", stripslashes($longDesc));
$shortDesc = stripslashes($longDesc);
$wordCount = str_word_count($shortDesc);

if($wordCount < 100) {
   echo "<div>".$shortDesc."</div>";
} else {
   $shortDesc = implode(" ", array_splice($descArray, 0, 100))
   echo '<div class="fade">'.$shortDesc.'</div>';
} 

答案 1 :(得分:0)

你在计算之前拼接你的阵列。 array_splice拼接它将它分配给自己。

$array = array(1,2,3,4,5,6,7,8,9);
array_splice($array, 0,3);
print_r($array);

新数组将为array(1, 2, 3, 4);

对于计算文字大小strlenstr_word_count来计算单词是一个更好的选择。

答案 2 :(得分:0)

它是 strlen 函数来计算字符串长度。