目标是计算一组用户文本中的段落数...
(我将假设它总是超过5个段落进行此练习)
然后我想将段落数量减半,将其四舍五入并在其间输入一些内容(echo "yehhoo"
)。
我明白我的方式$newvalue
不是很好,也希望得到帮助......
<?php
$choppedup = explode("<p>",$node->field_long_body[0]['safe']);
$choppedpos = count($choppedup);
$choppedpos2 = $choppedpos/2;
$newvalue = floor($choppedpos2);
//I know this is working to here... the rest not so sure.
for($j = 0; $j < $choppedup; $j ++):
print $choppedup[$j];
if ($j == $newvalue):
echo "yehhoo" ;
endif;
endif;
?>
谢谢
答案 0 :(得分:3)
for
...
endfor; # not endif
你的$newvalue
计算并不可怕,对于数组迭代,我宁愿建议foreach
循环(使用花括号):
foreach($choppedup as $ind => $p) {
echo $p;
if ($ind == $newvalue) {
echo 'yehoo';
}
}
答案 1 :(得分:1)
“Yehhoo”代表大括号!
for($j == 0; $j < $choppedup; $j ++) {
print $choppedup[$j];
if ($j == $newvalue) {
echo "yehhoo";
}
}
答案 2 :(得分:0)
为什么这么复杂的循环要计算段落标记的数量?
您可以这样做:
$sInput = '<p>Hello World</p><p>What is going on</p><p>Blah</p>';
if(preg_match_all('/<p>/', $sInput, $arMatches)!==false)
print count($arMatches[0]) . ' paragraphs<br/>';
当然上面需要做一些工作来确保段落标签之间有文字,但这应该适合您。