Verarbeitung von mehrdimensionalen Arrays

Einklappen
Dieses Thema ist geschlossen.
X
X
 
  • Filter
  • Zeit
  • Anzeigen
Alles löschen
neue Beiträge

  • Verarbeitung von mehrdimensionalen Arrays

    Hallo, ich habe ein großes Problem bei der Verarbeitung von mehrdimensionalen Arrays und komme
    leider einfach nicht weiter.

    Die folgenden Rohdaten sollen ausgewertet werden:
    Name | Stunden | Leistung
    Lehmann | 120 | Urlaub
    Lehmann | 90 | egal
    Meier | 30 | Krank

    Dabei sollen die Gesamtstunden der Mitarbeiter ermittelt werden, sowie
    die Stunden bei Krank und bei Urlaub. Nach der Auswertung soll folgende
    Tabelle ausgegeben werden:

    Name | StdGes | StUrlaub | StdKrank
    Lehmann | 210 | 120 | 0
    Meier | 30 | 0 | 30

    Das Array welches ausgewertet werden soll liegt in der folgenden Form vor:

    array(3) { ["A"]=> string(7) "Lehmann" ["B"]=> float(120) ["C"]=> string(6) "Urlaub"
    array(3) { ["A"]=> string(7) "Lehmann" ["B"]=> float(90) ["C"]=> string(4) "egal"
    array(3) { ["A"]=> string(5) "Meier" ["B"]=> float(30) ["C"]=> string(5) "Krank"}

    Mein Ansatz ist folgender, ich bilde jeweils ein Array $namen, $stunden, $leistung und
    packe diese Arrays dann in das Array $auswertung. Das Array $leistung dient zur Prüfung
    wie die Stunden summiert werden soll (Fall: Krank oder Urlaub).
    Mein Code wäre folgender:
    PHP-Code:
    $rohdatenEXC = array(); //gesamte Inhalt der Exceldatei als Array speichern
    $name = array();
    $stunden = array();
    $leistung = array();

    $Mitarbeiter = array();
    $StdGes = array();
    $StdUrl = array();
    $StdKrk = array();
    $auswertung = array($Mitarbeiter$StdGes$StdUrl$StdKrk);

    foreach(
    $sheetData as $key => $rohdatenEXC){
      
    $name $rohdatenEXC['A'];
      
    $stunden $rohdatenEXC['B'];
      
    $leistung $rohdatenEXC['C'];

      if(!isset(
    $auswertung[$name])){ // Prüfen ob Mitarbeiter noch nicht im Array $auswertung vorhanden ist
            
    $auswertung[$Mitarbeiter] = $name
            
    $auswertung[$StdGes] = $auswertung[$StdGes] + $stunden//Gesamtstunden
            
    If ($leistung == "Urlaub"){
              
    $auswertung[$StdUrl] = $auswertung[$StdUrl] + $stunden//Stunden Urlaub
            
    }
            else{
              
    $auswertung[$StdUrl] = 0;
            }
            
            If (
    $leistung == "Krank"){
              
    $auswertung[$StdKrk] = $auswertung[$StdKrk] + $stunden//Stunden Krank
            
    }
            else{
              
    $auswertung[$StdKrk] = 0;
            }
      }
      else { 
    //Mitarbeiter ist bereits im Array $auswertung
         
    $auswertung[$StdGes] = $auswertung[$StdGes] + $stunden//Gesamtstunden
         
    If ($leistung == "Urlaub"){
           
    $auswertung[$StdUrl] = $auswertung[$StdUrl] + $stunden//Stunden Urlaub
         
    }
        else{
           
    $auswertung[$StdUrl] = 0;
        }
            
        If (
    $leistung == "Krank"){
           
    $auswertung[$StdKrk] = $auswertung[$StdKrk] + $stunden//Stunden Krank
        
    }
        else{
           
    $auswertung[$StdKrk] = 0;
        }
      }
    }

    //Tabelle ausgeben:
     
     
    foreach($auswertung as $key => $value){
      echo 
    "<tr>"// Ausgabe nächste Zeile in Tabelle 
      
    echo "<td>" $value [$Mitarbeiter] . "</td>"//Mitarbeiter
      
    echo "<td>" $value [$StdGes] / 60 "</td>"//Stunden gesamt
      
    echo "<td>" $value [$StdUrl] / 60 "</td>"//Stunden Urlaub
      
    echo "<td>" $value [$StdKrk] / 60 "</td>"//Stunden Krank
      
    echo "</tr>";
     } 
    Überall wo ich die Wertzuweisung bei den Arrays machen will kommt die Fehlermeldung:

    Warning: Illegal offset type

    Ich weiß das dies auf einen falschen Index hindeutet, habe auch schon anderen Sachen getestet:
    z.B. $auswertung['Mitarbeiter'] = $name; klappt leider auch nicht...

  • #2
    Verarbeitung von mehrdimensionalen Arrays - PHP Forum: phpforum.de

    Kommentar


    • #3
      Crossposting ist unerwünscht

      *close*
      I don't believe in rebirth. Actually, I never did in my whole lives.

      Kommentar

      Lädt...
      X