PHP-Suche Hilfe

... komplette Frage anzeigen

3 Antworten

Derzeit packst du jeden Such-Treffer in das Array $result und lässt von print_r dessen Objekt-Darstellung ausgeben. Was du willst ist etwa die direkte Ausgabe des Treffers oder das Umwandeln des Array Inhalts in einen String, wofür sich implode (<http://www.php.net/manual/de/function.implode.php>) anbietet.

Antwort bewerten Vielen Dank für Deine Bewertung

Sieht doch gut aus! Du schreibst die Daten in ein Array, das beweist auch deine Ausgabe. Jetzt willst du natuerlich nicht das Array, sondern die Array-Elemente ausgeben, also print_r($results[0]); oder so aehnlich. Da du vorher nicht weisst, wie viele Treffer du hast, musst du dazu eine Schleife nehmen.

  • foreach ($results as $result) {
  • print_r($result);
  • }

Es ist eine beliebte Schreibweise fuer das Array die Mehrzahl zu nehmen (lines/results) und fuer die einzelnen Elemente die Einzahl (line/result). Manche Leute schreiben ausserdem den Typ hinter oder vor den Namen, das ist Geschmackssache (z.Bsp $arrResults oder $arrLines).

  • Zum Vergleich: Die foreach Schleife ist im Handbuch wie folgt definiert::
  • $arr = array(1, 2, 3, 4);
  • foreach ($arr as &$value) {
  • $value = $value * 2;
  • }
Antwort bewerten Vielen Dank für Deine Bewertung
Kommentar von nikolaiki
11.03.2014, 20:38

Setz auf jeden Fall $results = array(); an den Anfang; sonst bleibt die Variable undefiniert, wenn kein Treffer gefunden wird.

0

Warum eigentlich so umständlich? Für sowas gibt's Reguläre Ausdrücke. Hier gehts mit normalem PHP-Code gerade noch, aber sobald die Suche etwas komplexer wird...

Zur Ausgabe:

if(count($results) > 0)
{
    foreach($results as $result)
    {
        echo(rtrim($result, "\\\\r\\\\n")."\\\\n");
    }
}

print_r gibt immer den ganzen Kram drumherum aus, dafür wurde die Funktion geschaffen.

Und die foreach-Schleife muss in eine count-Abfrage geschachtelt werden... denn sonst gibt's Probleme wenn die Suche mal ergebnislos war.

Antwort bewerten Vielen Dank für Deine Bewertung

Was möchtest Du wissen?