tutorials.de Buch-Aktion 05/2012
ERLEDIGT
NEIN
ANTWORTEN
8
ZUGRIFFE
687
EMPFEHLEN
  • An Twitter übertragen
  • An Facebook übertragen
AUF DIESES THEMA
ANTWORTEN
  1. #1
    jackobo jackobo ist offline Mitglied
    Registriert seit
    Aug 2004
    Beiträge
    15
    Abend,
    Mit welcher Funktion ist es möglich ein Array nach einer bestimmten Zeichenkette zu durchsuchen und die gefundenen Werte danach auszugeben?

    z.B. Ich erstelle ein Array anhand der ausglesenen Dateien eines Ortners.

    das Arry enthält nun die Werte: bild1-klein.jpg, bild1.jpg, bild2-klein.jpg, bild2.jpg.....

    nun möchte ich alle Werte die "-klein" enthalten heraus suchen und augeben.

    gruess jackobo
     

  2. #2
    Registriert seit
    Dec 2002
    Ort
    Trier
    Beiträge
    17.502
    Blog-Einträge
    10
    Du könntest mit der preg_grep()-Funktion arbeiten:
    PHP-Code:
    preg_grep('/-klein/'$array
     
    Markus Wulftange

  3. #3
    jackobo jackobo ist offline Mitglied
    Registriert seit
    Aug 2004
    Beiträge
    15
    hmm......klappt nicht soganz

    PHP-Code:
    $ordner "../../images/albums/2005/";

    //Wenn der Ordner existiert...
    if(is_dir($ordner))
    {
        
    //Hier beginnen wir die Bilder in dem Verzeichnis auszulesen
        
    $dir opendir($ordner);
        
    //Hier beginnt die schleife, zum Auslesen der Dateien
        
    while(false != ($file readdir($dir)))
        {
            
    //Wenn die Datei kein Verzeichniss ist...
            
    if ($file != "." && $file != ".." && !is_dir($file))
            {
                
    $treffer preg_grep('/-klein/'$file);
                print 
    $treffer;
                
            } 
        }
    //Nach dem Auslesen der Bilder wird die "Verbindung" mit dem Verzeichnis geschlossen
    closedir($dir);

    wenn ich $file mit print ausgebe, so bekomme ich die Werte: 001-klein.jpg, 001-klein.jpg....

    wenn ich wie oben $treffer ausgebe, so erhalte ich die meldung: Warning: Second argument to preg_grep() should be an array in ....
     

  4. #4
    jackobo jackobo ist offline Mitglied
    Registriert seit
    Aug 2004
    Beiträge
    15
    ouw....

    hier fehlte noch was, habe ich vollkommen übersehen

    PHP-Code:
    if ($file != "." && $file != ".." && !is_dir($file))
            {
                
    $array = array($file);
                
    $treffer preg_grep('/-klein/'$array);
                foreach( 
    $treffer as $name )
                {
                print 
    "$name<br>";
                }
                
            } 
    klappt nun.

    gruss jackobo
     

  5. #5
    Registriert seit
    Dec 2002
    Ort
    Trier
    Beiträge
    17.502
    Blog-Einträge
    10
    Ich erstelle ein Array […] das Arry enthält nun die Werte: bild1-klein.jpg, bild1.jpg, bild2-klein.jpg, bild2.jpg..... […] nun möchte ich alle Werte die "-klein" enthalten heraus suchen und augeben.
    Lies dir deinen Beitrag noch einmal durch und vergleiche dessen Aussage mit meinem Funktionsvorschlag und dessen Beschreibung.

    Falls du jedoch obigen Algorithmus beibehalten möchtest, wird die strpos()-Funktion ausreichen.
     
    Markus Wulftange

  6. #6
    FipsTheThief FipsTheThief ist offline Mitglied Platin
    Registriert seit
    Oct 2004
    Ort
    Leipzig
    Beiträge
    589
    Zitat Zitat von jackobo
    ouw....

    hier fehlte noch was, habe ich vollkommen übersehen

    PHP-Code:
    if ($file != "." && $file != ".." && !is_dir($file))
            {
                
    $array = array($file);
                
    $treffer preg_grep('/-klein/'$array);
                foreach( 
    $treffer as $name )
                {
                print 
    "$name<br>";
                }
                
            } 
    klappt nun.

    gruss jackobo
    Warum erstmal alles in ein Array packen wenn man doch gleich die Ausgabe durchforsten kann ob es einen gewissen String enthält und danach packt man es in dann in ein Array

    Wie Gumbo sagte strpos() nehmen

    oder hier noch weitere funktionen um Strings zu testen:

    http://www.selfphp.de/funktionsrefer...nen/strpos.php
     

  7. #7
    Avatar von nero_85
    nero_85 nero_85 ist offline Mitglied Platin
    Registriert seit
    Jul 2005
    Ort
    Österreich
    Beiträge
    734
    und was spricht gegen array_search(); ?
     
    Als Hirte erlaube mir, zu dienen mein Vater dir. Deine Macht reichst du uns durch deine Hand, diese verbindet uns wie ein heiliges Band! Wir waten durch ein Meer von Blut, gib uns dafür Kraft und Mut. In nomine partris et filii et spiritu sancti...

    KLICK HIER ;)

    Tokio-Hotel's "Durch den Monsun" mal anders.

    (\_/)
    (O.o) This is Bunny. Copy Bunny into your signature
    (> <) to help him on his way to world domination.

  8. #8
    Registriert seit
    Dec 2002
    Ort
    Trier
    Beiträge
    17.502
    Blog-Einträge
    10
    Die array_search()-Funktion ist in diesem Fall nicht geeignet, da das Suchobjekt mit dem gesamten Wert eines Arrayelements übereinstimmen muss.
     
    Markus Wulftange

  9. #9
    FipsTheThief FipsTheThief ist offline Mitglied Platin
    Registriert seit
    Oct 2004
    Ort
    Leipzig
    Beiträge
    589
    Zitat Zitat von nero_85
    und was spricht gegen array_search(); ?
    Ich denke mal es ist unangebracht da du mehere Elemente in diesem Array hast , also bild1-klein, bild2- klein etc etc.Da würde man nun entweder nach bild$i-klein suchen müssen oder alles was die endung -klein am ende hat.

    So könnte man das gleich in einen Zug erledigen beim Auslesen des Ordners ohne noch grosse Umwege zu machen.
     

Ähnliche Themen

  1. Antworten: 2
    Letzter Beitrag: 10.11.10, 13:12
  2. Array nach bestimmtem Wert durchsuchen lassen
    Von cyberc im Forum Java Grundlagen
    Antworten: 6
    Letzter Beitrag: 06.01.10, 13:25
  3. Array nach best. Wert durchsuchen
    Von Naisetsu im Forum PHP
    Antworten: 5
    Letzter Beitrag: 10.02.06, 10:39
  4. Antworten: 4
    Letzter Beitrag: 22.11.04, 23:47
  5. Antworten: 2
    Letzter Beitrag: 09.09.03, 10:41