Bestimmte Werte aus einem Array lesen

Einklappen
X
 
  • Filter
  • Zeit
  • Anzeigen
Alles löschen
neue Beiträge

  • Godfrey
    antwortet
    Mit dieser Funktion kann er alle Umbrüche, Tabs... entfernen:

    http://www.selfphp.info/funktionsref...ionen/trim.php

    dann muss er sich nicht darum kümmern was drin sein könnten.

    Einen Kommentar schreiben:


  • penizillin
    antwortet
    wenn das die eingangsdaten sind:
    Code:
    ..:: Namen ::.. 
    7 Müller
    ..:: Wohnort ::.. 
    3 Berlin 
    ..:: Land ::.. 
    5 Italien
    explode'n wir erstmal nach zeilenumbrüchen und packen die ungeradzahligen elemente in ein array. schon haben wir
    Code:
    7 Müller
    3 Berlin 
    5 Italien
    als nächstes ersetzen wir mithilfe von regexp alles '/\d /' oder so durch ''. nun haben wir
    Code:
    Müller
    Berlin 
    Italien
    jetzt kannst du schon suchen, wenn du willst.

    Einen Kommentar schreiben:


  • Philbil
    antwortet
    Und wo fangen "wir" nun mit dem optimieren an?

    Einen Kommentar schreiben:


  • Philbil
    antwortet
    Ich staune.. es geht
    Allerdings, bin ich verwirrt, genau das hatte ich schon probiert, und es ging nicht.. wohl irgendwo ein Schreibfehler oder so.. :/

    Einen Kommentar schreiben:


  • penizillin
    antwortet
    $Inhalt = str_replace("\r\n", '', $Inhalt);

    Einen Kommentar schreiben:


  • Philbil
    antwortet
    Gerne, ich muss leider auf mein beschränktes Wissen zurückgreifen..


    Falls du es mal testen möchtest:

    LINK ENTFERNT

    Dort einfach folgendes einfügen:

    ..:: Namen ::..
    7 Müller
    ..:: Wohnort ::..
    3 Berlin
    ..:: Land ::..
    5 Italien
    Zuletzt geändert von Philbil; 12.02.2005, 16:39.

    Einen Kommentar schreiben:


  • penizillin
    antwortet
    1. schau aufmerksam in $Inhalt rein. mit <pre> drumrum. siehst du was?
    2. lösche die zeilenumbrüche

    wenn's erstmal läuft, können wir dein script noch ne ganze runde optimieren, wenn du lust hast.

    Einen Kommentar schreiben:


  • Philbil
    antwortet
    Eigt garnicht, also Zeilenumbrüche, ich habe mal versucht sie mit rauszulöschen, allerdings führte das dann dazu das nur nochmehr dazu kamen.. aber wenn du da keinen Fehler siehst, wie kann es dann sein das welche entstehen?!

    Einen Kommentar schreiben:


  • penizillin
    antwortet
    ich sehe keinen grund für überflüssige leerzeichen.
    abgesehen von der tatsache, dass ich nicht verstanden habe, wie du mit zeilenumbrüchen umgehst.

    Einen Kommentar schreiben:


  • Philbil
    antwortet
    PHP-Code:
    //Variable übergeben
    $Inhalt $HTTP_POST_VARS["Inhalt"];


    //Schiffsnamen inkl Zeichen entfernen
    $Inhalt str_replace(' '''$Inhalt);
    $Inhalt ereg_replace("..::Namen::..","",$Inhalt);
    $Inhalt ereg_replace("..::Land::..","",$Inhalt);
    $Inhalt ereg_replace("..::Wohnort::..","",$Inhalt);
    $Inhalt ereg_replace("..::Alter::..","",$Inhalt);


    //Zahlen rauslöschen
    $Inhalt ereg_replace("0","",$Inhalt);
    $Inhalt ereg_replace("1","",$Inhalt);
    $Inhalt ereg_replace("2","",$Inhalt);
    $Inhalt ereg_replace("3","",$Inhalt);
    $Inhalt ereg_replace("4","",$Inhalt);
    $Inhalt ereg_replace("5","",$Inhalt);
    $Inhalt ereg_replace("6","",$Inhalt);
    $Inhalt ereg_replace("7","",$Inhalt);
    $Inhalt ereg_replace("8","",$Inhalt);
    $Inhalt ereg_replace("9","",$Inhalt);


    //Einfügen der Trennzeichen für späteres Explode
    $Inhalt ereg_replace("Müller","Müller|",$Inhalt);
    $Inhalt ereg_replace("Berlin","Berlin|",$Inhalt);
    $Inhalt ereg_replace("Italien","Italien|",$Inhalt);


    //explode durchführen
    $explode explode("|",$Inhalt); 


    $test $explode[0];
    $test2 $explode[1];


    //Array initialisieren
    $array = array("$test""$test2");

    /Array 
    suche starten
    $such_id 
    Berlin;
    $key=array_search($such_id,$array);

    //Ausgabe
    echo $key

    Ist der komplette Code bisher..

    Einen Kommentar schreiben:


  • penizillin
    antwortet
    zeig mal mehr code

    Einen Kommentar schreiben:


  • Philbil
    antwortet
    Jop geht.
    Aber eine Frage bleibt mir dennoch.
    Es werden soweit alle Leerzeichen entfernt, bis auf ein paar, warum weiss ich nicht.


    ..:: Namen ::..
    7 Müller
    ..:: Wohnort ::..
    3 Berlin
    ..:: Land ::..
    5 Italien



    So sieht die eingabe aus, die die User in das input Feld tätigen.
    Nun möchte ich erstmal eine Suche anstellen, also mit ereg_replace() alles rausformatieren, Zahlen Leerzeilen etc, bis letzendlich nur noch da steht: MüllerBerlinItalien.
    Nun, da es feste Werte sind, die untereinander also der Position nur variieren, habe ich noch mit ereg_replace jedes Wort mit "Wort|" also einen Platzhalter setzt. Anhand diesen Platzhalters splitte ich es nun mit explode, um anschliessend jeden Wert einzeln in ein Array zu übergeben, in welchem ich überprüfen möchte, an welcher Stelle welcher Wert sitzt.

    Nun, nachdem ich es soweit formatiert habe, und davon ausgehe das eben nur noch Müller|Berlin|Italien| vorhanden ist, wollte ich es splitten. Mir ist aber aufgefallen, das trotzdem eine Leerzeile vorhanden bleibt. Vor jedem Namen, also so: " Land| Berlin| Italien|"
    Nun, so wird es auch ins Array übertragen, wenn ich dann nach "Berlin" suche, ist klar das kein Wert gefunden wird, darum versuchte ich mit chop() etc die leerzeilen wegzukriegen, bekomme ich aber nicht und ich weiß nicht warum.. eigt sollte
    PHP-Code:
    $Inhalt str_replace(' '''$Inhalt); 
    ja alle Leerzeilen entfernen. Anscheinend aber ja nicht, oder doch? Wenn ja, wo kommen dann die Leerzeilen vor den Namen immer her?
    Ich hab die ganze Nacht dran gesessen, finde den Fehler aber einfach nicht.

    Einen Kommentar schreiben:


  • Godfrey
    antwortet
    Damit müsste es gehen

    http://www.selfphp.info/funktionsref...tr_replace.php

    Einen Kommentar schreiben:


  • Philbil
    antwortet
    Mach ich gleich/später.

    Vorher eine Frage. Wenn ich mittels explode was splitten möchte, das vorher aber noch per ereg_replace "formatieren" möchte, wie stell ich es an Leerzeichen zu entfernen? Da gibts einen bestimmten char für oder so, hab mich schon totgesucht, finde aber nichts..

    Einen Kommentar schreiben:


  • ess0r
    antwortet
    echt... sag mal die URL, wo dies läuft, damit man das mal nachvollziehen kann.

    Greez. Ess0r

    Einen Kommentar schreiben:

Lädt...
X