PHP offset

puschelchen

Erfahrenes Mitglied
Hallo ihr Lieben ich hab nen offset Problem
Notice: Undefined offset: 291 in /srv/www/htdocs/dpIndex.php on line 197
die Zeile:
PHP:
 $dpAmount = ($dpAmountTable[$dpTime][hexdec($dpItem)] ? $dpAmountTable[$dpTime][hexdec($dpItem)] : 60);
ich hab gelesen das der array dann nicht stimmt lieg ich da richtig? würde mir zumindest dabei helfen bei der Fehlersuche.
Vielen Dank schonma
 
ok ich finde Den Fehler iwie nich
PHP:
                                        // Artikelbeschreibung
                                        $dpItem = substr($dpReference,0,3);
                                        // Zeitbegrenzung
                                        $dpTime = $dpReference[3];
                                        /*
                                        echo $dpItem;
                                        echo "  ";
                                        echo $dpTime;
                                        echo " php:";
                                        echo $dpReference;
                                        */

                                        // Nur mit den richtigen Werten in item und time weitermachen
                                        if (strlen($dpItem) == 3 && strlen($dpTime) == 1 /*&& ($dpTime == 0 || $dpTime == 1)*/ )
                                        {
                                                // wertetabelle aller auftretenden Beträge
                                                $dpAmountTable = array(
                                                                                                array(10,0.05,30,40,50,60,70,80,90,100,110,120,130,140,150,160),
                                                                                                array(10,20,30,40,50,60),
                                                                                                array(10,20,30,40,50,60),
                                                                                                array(10,20,30,40,50,60),
                                                                                                array(10,20,30,40,50,60),
                                                                                                array(10,20,30,40,50,60),
                                                                                                array(10,20,30,40,50,60),
                                                                                                array(10,20,30,40,50,60),
                                                                                                array(10,20,30,40,50,60),
                                                                                                array(10,20,30,40,50,60),
                                                                                                array(10,20,30,40,50,60)
                                                                                );

                                                // Falls es in $dpAmountTable nen Werteintrag mit den Parametern gibt nimm diesen, ansonsten default 666
                                                $dpAmount = ($dpAmountTable[$dpTime][hexdec($dpItem)] ? $dpAmountTable[$dpTime][hexdec($dpItem)] : 60);
 
Du solltest nicht den Wert auf true prüfen sondern prüfen ob er exisitiert. Am einfachsten mit array_key_exists()
PHP:
 $dpAmount = (array_key_exists(hexdec($dpItem), $dpAmountTable[$dpTime]) ? $dpAmountTable[$dpTime][hexdec($dpItem)] : 60);
 
Zurück