Ankündigung

Einklappen
Keine Ankündigung bisher.

Array Auswertung

Einklappen

Neue Werbung 2019

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

  • madmix
    hat ein Thema erstellt Array Auswertung.

    Array Auswertung

    Hallo Leute,

    ich wende mich mit einem Problem an euch wo ich einfach nicht weiterkomme.

    Ich habe zwei Arrays die Öffnungszeiten beinhalten.

    Array
    (
    [moFrom] => 17:00
    [diFrom] => 17:00
    [miFrom] => 17:00
    [doFrom] => 17:00
    [frFrom] => 17:00
    [saFrom] => 12:00
    [soFrom] => 12:00
    )

    Array
    (
    [moTo] => 22:00
    [diTo] => 22:00
    [miTo] => 22:00
    [doTo] => 22:00
    [frTo] => 01:00
    [saTo] => 00:00
    [soTo] => 22:00
    )

    Es soll jetzt aus diesen beiden Arrays eine Anzeige generiert werden, die in etwa wie folgt ausschaut.

    Mo - Do 17:00 - 22:00
    Fr 17:00 - 01:00
    Sa 12:00 - 00:00
    So 12:00 - 22:00

    Ich stehe nun schon seit Tagen auf dem Schlauch wie ich diese Anzeige am besten aus den Arrays heraus extrahiere.
    Hat von euch schon mal jemand das gleiche Problem gehabt?
    Wenn ja wie habt ihr das gelöst oder wenn nein, wie kann man sowas am besten umsetzen.

    Ich steh echt auf dem Schlauch.
    Vielleicht verbeiße ich mich auch in meinen bisherigen Gedankengängen aber ich komm einfach nicht weiter.
    Für konstruktive Anregungen wäre ich sehr dankbar.

    LG Mad

  • madmix
    antwortet
    Zitat von jspit Beitrag anzeigen
    Die "Umstellung des Scriptes" unter Benutzung der alt hergebrachten Arraydefinitionen (Sonst 1:1) funktioniert auch unter V5.3.8.
    Noch ältere PHP-Versionen gehören wirklich in die Tonne.

    Edit: Hat sich ja erledigt.
    Jo, und Danke nochmal für die schnelle Hilfe an euch alle.

    Einen Kommentar schreiben:


  • jspit
    antwortet
    Die "Umstellung des Scriptes" unter Benutzung der alt hergebrachten Arraydefinitionen (Sonst 1:1) funktioniert auch unter V5.3.8.
    Noch ältere PHP-Versionen gehören wirklich in die Tonne.

    Edit: Hat sich ja erledigt.

    Einen Kommentar schreiben:


  • madmix
    antwortet
    Zitat von rkr Beitrag anzeigen
    Vielleicht PHP < 5.4?
    Jo leider nur 5.3.18 auf dem Server installiert.

    Einen Kommentar schreiben:


  • madmix
    antwortet
    Zitat von jspit Beitrag anzeigen
    Wirklich? Ich auch.


    Der Vergleich mit den Uhrzeiten wird ganz geschickt durch die speziellen Schlüssel realisiert.



    Nö. rkr's script lifert bei mir:
    mo, di, mi, do: 17:00 - 22:00 fr: 17:00 - 01:00 sa: 12:00 - 00:00 so: 12:00 - 22:00
    Getestet habe ich schon, ohne die Umstellungen die ich eingangs erwähnte bekomme ich ParseError beim ersten foreach sowie in der If-Abfrage.

    Parse error: syntax error, unexpected '[' in /var/www/web410/html/test.php on line 27

    Aber es lag auch nach der Umstellung eindeutig an meinem Arrays weshalb es nicht funzte.

    Ich ruf die aus der DB ab und habe leider festgestellt das sie nicht so erstellt werden wie es rkr's script vorgibt.

    Nun geht es aber...tausend Dank nochmal und nix für Ungut.

    Einen Kommentar schreiben:


  • rkr
    antwortet
    Zitat von jspit Beitrag anzeigen
    Wirklich? Ich auch.
    Vielleicht PHP < 5.4?

    Einen Kommentar schreiben:


  • jspit
    antwortet
    Zitat von madmix Beitrag anzeigen
    Ich habe das gleich mal getestet.
    Wirklich? Ich auch.

    Zitat von madmix Beitrag anzeigen
    Mal ganz davon abgesehen das es so, ohne einige Umstellungen bei mir nicht lauffähig ist, vermisse ich hier den Vergleich mit den Uhrzeiten.
    Der Vergleich mit den Uhrzeiten wird ganz geschickt durch die speziellen Schlüssel realisiert.

    Zitat von madmix Beitrag anzeigen
    Die Ausgabe deines Scriptes ist: "mo, di, mi, do, fr, sa, so: -"
    Nö. rkr's script lifert bei mir:
    mo, di, mi, do: 17:00 - 22:00 fr: 17:00 - 01:00 sa: 12:00 - 00:00 so: 12:00 - 22:00

    Einen Kommentar schreiben:


  • madmix
    antwortet
    Zitat von CrocoBlack Beitrag anzeigen
    Wenn du n fertiges funktionierendes Script willst, dann brauchst du das Forum "Scriptbörse". Und dann solltest du entsprechend zu zahlen bereit sein. In den sonstigen Foren wird nur hilfe zur selbsthilfe geliefert, die du bekommen hast und auf die du jetzt aufbauen kannst.
    Das hab ich schon verstanden....
    Daher ja auch mein Satz 'Aber ich werde versuchen darauf aufzubauen.'

    Einen Kommentar schreiben:


  • CrocoBlack
    antwortet
    Wenn du n fertiges funktionierendes Script willst, dann brauchst du das Forum "Scriptbörse". Und dann solltest du entsprechend zu zahlen bereit sein. In den sonstigen Foren wird nur hilfe zur selbsthilfe geliefert, die du bekommen hast und auf die du jetzt aufbauen kannst.

    Einen Kommentar schreiben:


  • madmix
    antwortet
    Zitat von rkr Beitrag anzeigen
    Wo ist das auch nur ansatzweise fortgeschritten?

    PHP-Code:
    <?php
    $from 
    = [
        
    'mo' => '17:00',
        
    'di' => '17:00',
        
    'mi' => '17:00',
        
    'do' => '17:00',
        
    'fr' => '17:00',
        
    'sa' => '12:00',
        
    'so' => '12:00',
    ];

    $to = [
        
    'mo' => '22:00',
        
    'di' => '22:00',
        
    'mi' => '22:00',
        
    'do' => '22:00',
        
    'fr' => '01:00',
        
    'sa' => '00:00',
        
    'so' => '22:00',
    ];

    $groups = array();
    foreach([
    'mo''di''mi''do''fr''sa''so'] as $day) {
        
    $key "{$from[$day]} - {$to[$day]}";
        if(!
    array_key_exists($key$groups)) {
            
    $groups[$key] = [];
        }
        
    $groups[$key][] = $day;
    }

    foreach(
    $groups as $range => $days) {
        
    printf("%s: %s\n"join(', '$days), $range);
    }
    Danke für die schnelle Antwort.
    Ich habe das gleich mal getestet.
    Mal ganz davon abgesehen das es so, ohne einige Umstellungen bei mir nicht lauffähig ist, vermisse ich hier den Vergleich mit den Uhrzeiten.

    Die Ausgabe deines Scriptes ist: "mo, di, mi, do, fr, sa, so: -"
    Geht also leider an meiner Frage vorbei.
    Aber ich werde versuchen darauf aufzubauen.

    P.S. daher habe ich das hier im fortgeschrittenen Channel gepostet, weil das nicht ganz so einfach zu bewerkstelligen ist.

    Hier mal die Umstellung des Scriptes:

    PHP-Code:

                $groups 
    = array(); 
                
    $tag = array('mo''di''mi''do''fr''sa''so');
                foreach(
    $tag as $day) { 
                    
    $key "{$from[$day]} - {$to[$day]}"
                    if(!
    array_key_exists($key$groups)) { 
                            
    $groups[$key] = ""
                    } 
                    
    $groups[$key][] = $day
                } 
                
    var_dump($groups);
                foreach(
    $groups as $range => $days) { 
                    
    printf("%s: %s\n"join(', '$days), $range); 
                } 
    Aber danke trotzdem.
    Mad

    Einen Kommentar schreiben:


  • rkr
    antwortet
    Wo ist das auch nur ansatzweise fortgeschritten?

    PHP-Code:
    <?php
    $from 
    = [
        
    'mo' => '17:00',
        
    'di' => '17:00',
        
    'mi' => '17:00',
        
    'do' => '17:00',
        
    'fr' => '17:00',
        
    'sa' => '12:00',
        
    'so' => '12:00',
    ];

    $to = [
        
    'mo' => '22:00',
        
    'di' => '22:00',
        
    'mi' => '22:00',
        
    'do' => '22:00',
        
    'fr' => '01:00',
        
    'sa' => '00:00',
        
    'so' => '22:00',
    ];

    $groups = array();
    foreach([
    'mo''di''mi''do''fr''sa''so'] as $day) {
        
    $key "{$from[$day]} - {$to[$day]}";
        if(!
    array_key_exists($key$groups)) {
            
    $groups[$key] = [];
        }
        
    $groups[$key][] = $day;
    }

    foreach(
    $groups as $range => $days) {
        
    printf("%s: %s\n"join(', '$days), $range);
    }

    Einen Kommentar schreiben:

Lädt...
X