2009-08-14 20 views
0

目標は、ユーザーがテキストのグループの段落の数を数えることである...ここに私の構文の何が間違っていますか?

(私はこの練習のために5つの段落よりもその常に大きなを仮定します)

その後、私は1/2にしたいです段落の数を切り捨て、中間にいくつかの内容(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; 
?> 

ありがとう

答えて

3
for 
... 
endfor;  # not endif 

あなた$newvalue計算がひどいではありません配列の反復のために、私はむしろforeachループ(中括弧を使用して)を提案したいと思います:

foreach($choppedup as $ind => $p) { 
    echo $p; 
    if ($ind == $newvalue) { 
     echo 'yehoo'; 
    } 
} 
+0

が優れていました。ありがとうございます 私は "as"を探求します...確かに新しいものです。 – fighella

+0

Im new at this。私はdownvoteをしなかった.. :) thoを受け入れるだろう。どうもありがとう。 – fighella

+0

私はあなたがいないことを知っています、あなたはできません:)しかし、私は私の答えを改善するために何を修正すべきか本当に不思議です。 – SilentGhost

1

中括弧は "Yehhoo"!

for($j == 0; $j < $choppedup; $j ++) { 
    print $choppedup[$j]; 
    if ($j == $newvalue) { 
      echo "yehhoo"; 
    } 
} 
+0

なぜいくつかの例では ":"を使用しています...違いはありますか? (psありがとう) – fighella

+0

@fighella:あなたが実際に使っているものを読んでください:http://docs.php.net/manual/en/control-structures.alternative-syntax.php – SilentGhost

+0

私はなかったと思いますforとforeachに注目してください...もっと注意を払うでしょう... – fighella

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/>'; 

以上が段落タグの間のテキストがありますが、これはあなたが必要のために働く必要がありますことを確認するためにいくつかの作業を必要とします。

+0

ループは複雑ではありませんが、あなたのコードは確かにnoob-readableではありません。 –

+0

それは彼の目的のために複雑です。正規表現を使うだけで、簡単に自分がやっていることを達成することができます。メンテナンスが簡単で、要件が変更されてもそれほど変更する必要はありません。 あなたがそれを置くとき、それは "仲間と親切"ではありません。ここでの違いは、コードが目的にあまりにも複雑すぎることです。車輪を再発明して得たものを使用しようとしないでください。 – Daniel

関連する問題