Hallo, ich habe mehrere Arrays mit doppelten Nutzereinträgen. Ich möchte die Arrays nach den gleichen Nachnamen durchsuchen und ein neues Array zusammenstelllen wo die Stunden für den jeweils Nutzer zusammen addiert werden. Meine Code wäre folgender:
Ausgabe:
Notice: Undefined index: stunden in line 42
Notice: Undefined index: vorname in line 57
Dampf7.85
MaxDampf10.15
Ich habe daraufhin den Debug-Modus aktiviert und mir in der ersten FOR-a-Schleife folgendes
ausgeben lassen: var_dump($a, $nachname, count($rohdaten));
Ausgabe:
int(0) string(6) "Lustig" int(4) int(1) string(6) "Lustig" int(4)
Notice: Undefined index: stunden in G:\Programme\Xampp\htdocs\01.Projekte.xampp\Auswer tungHW\_test.php on line 42
int(2) string(5) "Dampf" int(4) int(3) string(5) "Dampf" int(4)
Notice: Undefined index: vorname in G:\Programme\Xampp\htdocs\01.Projekte.xampp\Auswer tungHW\_test.php on line 57
Dampf7.85
MaxDampf10.15
Es sieht also so aus, als wenn er die FOR-a-Schleife nicht bis 4 durchläuft oder?
PHP-Code:
<?php
//Debugging einschalten
error_reporting(-1);
ini_set('display_errors', true);
$rohdaten = array();
$auswertung = array();
$rohdaten[0]['vorname'] = 'Max';
$rohdaten[0]['nachname'] = 'Lustig';
$rohdaten[0]['stunden'] = 2.30;
$rohdaten[1]['vorname'] = 'Max';
$rohdaten[1]['nachname'] = 'Lustig';
$rohdaten[1]['stunden'] = 1.50;
$rohdaten[2]['vorname'] = 'Hans';
$rohdaten[2]['nachname'] = 'Dampf';
$rohdaten[2]['stunden'] = 5.10;
$rohdaten[3]['vorname'] = 'Hans';
$rohdaten[3]['nachname'] = 'Dampf';
$rohdaten[3]['stunden'] = 1.25;
for($a = 0; $a < count($rohdaten); $a++){
//Prüfen ob Nachname bereits vorhanden
$nachname = $rohdaten[$a]['nachname'];
var_dump($a, $nachname, count($rohdaten));
If ($a == 0) {
//erster Datensatz in Array $auswertung definieren
$auswertung[1]['vorname'] = $rohdaten[$a]['vorname'];
$auswertung[1]['nachname'] = $rohdaten[$a]['nachname'];
$auswertung[1]['stunden'] = $rohdaten[$a]['stunden'];
}
else{
for($b=0; $b < count($auswertung); $b++){
If ($auswertung[$b]['nachname'] = $nachname){
//Nachname wurde in $auswertung gefunden
$auswertung[$b]['stunden'] = $auswertung[$b]['stunden'] + $rohdaten[$a]['stunden'];
}
else{
//Nachname wurde nicht in $auswertung gefunden
//$b = $zaehler + 1;
$auswertung[$b+1]['vorname'] = $rohdaten[$a]['vorname'];
$auswertung[$b+1]['nachname'] = $rohdaten[$a]['nachname'];
$auswertung[$b+1]['stunden'] = $rohdaten[$a]['stunden'];
}
}
}
}
//Datenauswertung ausgeben
for($i=0; $i < count($auswertung); $i++){
echo $auswertung[$i]['vorname'];
echo $auswertung[$i]['nachname'];
echo $auswertung[$i]['stunden'];
echo '<br>';
}
?>
Notice: Undefined index: stunden in line 42
Notice: Undefined index: vorname in line 57
Dampf7.85
MaxDampf10.15
Ich habe daraufhin den Debug-Modus aktiviert und mir in der ersten FOR-a-Schleife folgendes
ausgeben lassen: var_dump($a, $nachname, count($rohdaten));
Ausgabe:
int(0) string(6) "Lustig" int(4) int(1) string(6) "Lustig" int(4)
Notice: Undefined index: stunden in G:\Programme\Xampp\htdocs\01.Projekte.xampp\Auswer tungHW\_test.php on line 42
int(2) string(5) "Dampf" int(4) int(3) string(5) "Dampf" int(4)
Notice: Undefined index: vorname in G:\Programme\Xampp\htdocs\01.Projekte.xampp\Auswer tungHW\_test.php on line 57
Dampf7.85
MaxDampf10.15
Es sieht also so aus, als wenn er die FOR-a-Schleife nicht bis 4 durchläuft oder?
Kommentar