+ Antworten
Ergebnis 1 bis 3 von 3

Thema: Letztes Element eines Arrays anders darstellen

  1. #1
    TP-Senior Magerquark macht alles soweit korrekt Avatar von Magerquark
    Registriert seit
    May 2004
    Beiträge
    226

    Letztes Element eines Arrays anders darstellen

    Ich habe ein Array. Mit
    PHP-Code:
    foreach ( $files as $value ) {
     echo 
    "foo-" substr($value,6,-4)  . ","."\n";

    kann ich mir alle Elemente ausgeben lassen. In diesem Fall erfährt jedes Element ein bisschen "Beschneidung" (substr) hinten und vorne und hat am Ende ein Komma. Alles nicht so wild. Ich möchte aber, dass das letzte Element des Arrays kein Komma am Ende hat. Ich habe das so gemacht:
    PHP-Code:
    $lastelement end($files);
    $list $files;
    $trash array_pop($list);

    foreach ( 
    $list as $value ) {
     echo 
    "foo-" substr($value,6,-4)  . ","."\n";
    }
     echo 
    "foo-".substr($lastelement,6,-4)."\n"
    Ja, das geht. Aber es sieht "dreckig" aus. Geht es auch schneller und sauberer?
    << Meine Ankunft war zeitlich schlecht gewählt...>>

  2. #2
    TP-Specialist phpBuddy ist einer der Eckpfeiler des TP - ohne ihn geht nichts phpBuddy ist einer der Eckpfeiler des TP - ohne ihn geht nichts phpBuddy ist einer der Eckpfeiler des TP - ohne ihn geht nichts phpBuddy ist einer der Eckpfeiler des TP - ohne ihn geht nichts phpBuddy ist einer der Eckpfeiler des TP - ohne ihn geht nichts phpBuddy ist einer der Eckpfeiler des TP - ohne ihn geht nichts phpBuddy ist einer der Eckpfeiler des TP - ohne ihn geht nichts phpBuddy ist einer der Eckpfeiler des TP - ohne ihn geht nichts phpBuddy ist einer der Eckpfeiler des TP - ohne ihn geht nichts phpBuddy ist einer der Eckpfeiler des TP - ohne ihn geht nichts phpBuddy ist einer der Eckpfeiler des TP - ohne ihn geht nichts Avatar von phpBuddy
    Registriert seit
    Aug 2004
    Ort
    Kaiserslautern
    Beiträge
    4.678
    Zitat Zitat von Magerquark Beitrag anzeigen
    PHP-Code:
    $lastelement end($files);
    $list $files;
    $trash array_pop($list); 
    Das kannst Du dir so eigentlich sparen, weil end den internen Zeiger auf's letzte Element setzt, Du das Element ausliest, dann das Array in ein anderes überträgst und dort das letzte Element abtrennst. Es würde also ein einfaches ...
    PHP-Code:
    $lastelement array_pop$files ); 
    ... ausreichen. Dann hast Du das letzte Element in $lastelement und alle anderen Elemente verbleiben in $files.

    Auch die Ausgabe kann man so machen, wie Du es getan hast. Mag dir zwar optisch nicht so schick vorkommen, ist aber legitim und nichts dagegen einzuwenden.
    Wenn Du PHP 5 oder höher im Einsatz hast, kannst Du das auslesen eines Verzeichnis und die Ausgabe verkürzen, indem Du dich der SPL bedienst. Beispiel:
    PHP-Code:
    $files = new ArrayIteratorglob"*" ) );
    while (
    $files->valid())
    {
        
    $output "foo-" substr$files->current(), 6, -);
        echo (
    $files->count() != $files->key()+1) ? $output .= ",\n" $output "\n";
        
    $files->next();

    Falls Du für glob einen Pfad angibst um die Dateien auszulesen (und zu filtern), würden die auch in der Ausgabe mit ausgegeben werden. In dem Fall sollte dann im substr statt $files->current() der Dateiname extrahiert werden: basename( $files->current() )
    Im letzteren Fall kannst Du dir auch im substr das -4 sparen, sofern alle Dateien die gleiche Endung haben, da Du bei basename einen 2. Parameter als Suffix angeben kannst, der ebenfalls abgetrennt wird. Beispiel:
    PHP-Code:
    basename$files->current(), '.jpg' 
    So, genug Erklärung für heute, alles Weitere steht dann in der Doku.

  3. #3
    TP-Senior MichaG bringt sich richtig ein MichaG bringt sich richtig ein
    Registriert seit
    Dec 2008
    Beiträge
    183
    Vorher die Elemente durchgehen, ein neues Array zusammenbauen und am Ende ein:

    PHP-Code:
    $str implode(",\n"$newArray); 

+ Antworten

Ähnliche Themen

  1. h1 anders darstellen...
    Von bona im Forum HTML & CSS
    Antworten: 8
    Letzter Beitrag: 08.03.2006, 08:08
  2. Variable anders farbig darstellen
    Von Paco im Forum Traum-Dynamik
    Antworten: 12
    Letzter Beitrag: 20.02.2006, 15:07
  3. Größe eines mehrdimensionalen Arrays
    Von E.T. im Forum Traum-Dynamik
    Antworten: 3
    Letzter Beitrag: 27.01.2004, 14:31
  4. Antworten: 3
    Letzter Beitrag: 10.04.2003, 16:31
  5. Sort auf das Ende eines Arrays
    Von nicor im Forum Traum-Dynamik
    Antworten: 1
    Letzter Beitrag: 28.11.2002, 07:00

Stichworte

Aktive Benutzer

Aktive Benutzer

Aktive Benutzer in diesem Thema: 1 (Registrierte Benutzer: 0, Gäste: 1)

     

1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51