2009-08-14 6 views
0

Das Ziel ist es, die Anzahl der Absätze in einer Gruppe von Benutzern Text zu zählen ...Was stimmt hier nicht mit meiner Syntax?

(I seine immer größer als 5 Absätze für diese Übung übernehmen wird)

Dann will ich das auf 1/2 Anzahl der Absätze, runden Sie ab und geben Sie einen Inhalt (echo "yehhoo") dazwischen ein.

verstehe ich so, wie ich bekommen habe meine $newvalue nicht sehr gut ist, auch auf die wie Hilfe würde ...

<?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; 
?> 

Danke

Antwort

3
for 
... 
endfor;  # not endif 

Ihre $newvalue Berechnung nicht schrecklich Für die Array-Iteration würde ich eher eine foreach-Schleife vorschlagen (mit geschweiften Klammern):

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

hat ausgezeichnet funktioniert. danke Ich werde das "as" erforschen ... das ist ein neues für sicher ... – fighella

+0

Ich bin neu hier. Ich habe nicht downvote .. :) wird tho akzeptieren. Danke vielmals. – fighella

+0

Ich weiß, du hast es nicht, du kannst nicht :) aber ich bin wirklich neugierig, was ich korrigieren sollte, um meine Antwort zu verbessern. – SilentGhost

1

"Yehhoo" für geschweifte Klammern!

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

Warum verwenden einige Beispiele das ":" ... was ist der Unterschied? (PS Danke) – fighella

+0

@fighella: Lesen Sie, was Sie tatsächlich verwenden: http://docs.php.net/manual/en/control-structures.alternative-syntax.php – SilentGhost

+0

Ich denke, ich habe nicht Beachten Sie die For und Foreach ... wird mehr Aufmerksamkeit schenken ... – fighella

0

Warum eine so komplexe Schleife, um die Anzahl der Absatztags zu zählen?

Sie können etwas tun:

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

Natürlich muss die oben einige Arbeit, um sicherzustellen, gibt Text zwischen den Absatz-Tags sind, aber dies sollte für Sie arbeiten müssen.

+0

Die Schleife ist nicht komplex, aber Ihr Code ist in der Tat nicht noob-lesbar. –

+0

Nun, es ist komplex für seinen Zweck. Sie können einfach erreichen, was er tut, indem Sie reguläre Ausdrücke verwenden. Es ist einfacher zu pflegen und erfordert keine großen Änderungen, wenn sich Ihre Anforderungen ändern. Es geht nicht um "Noob freundlich", wie Sie es sagen. Der Unterschied ist, dass der Code für seinen Zweck zu komplex ist. Versuchen Sie nicht, das Rad neu zu erfinden und zu nutzen, was Sie haben. – Daniel

Verwandte Themen