Arrays - Erste Versuche: Fehlermeldung

Hallo, versuche mir grad mal wieder selber was beizubringen :wink: Meine ersten Versuche mit Arrays. Steckt aber noch ein bissel der Wurm drinne.

<?
$ArrayNetwork = array (
1 => 'xxx.xxx.xxx.xx1', 2 => '41012',
3 => 'xxx.xxx.xxx.xx2', 4 => '23873',	
5 => 'xxx.xxx.xxx.xx3', 6 => '32430', 
7 => 'xxx.xxx.xxx.xx4', 8 => '53965', 
9 => 'xxx.xxx.xxx.xx5', 10 => '41344', 
11 => 'xxx.xxx.xxx.xx6', 12 => '13894', 
13 => 'xxx.xxx.xxx.xx7', 14 => '20274', 
15 => 'xxx.xxx.xxx.xx8', 16 => '39797', 
17 => 'xxx.xxx.xxx.xx9', 18 => '37801', 
19 => 'xxx.xxx.xxx.x10', 20 => '26907', 
21 => 'xxx.xxx.xxx.x11', 22 => '18299', 
23 => 'xxx.xxx.xxx.x12', 24 => '45076', 
25 => 'xxx.xxx.xxx.x13', 26 => '31054', 
27 => 'xxx.xxx.xxx.x14', 28 => '56970', 
29 => 'xxx.xxx.xxx.x15', 30 => '46328',
);

//print_r ($ArrayNetwork);

$a = "0";
$Zahl = "30";

for($count = 1; $count <= $Zahl; $count++)
{
$a = $a + 1;
$IP = $ArrayNetwork [$a];

$Test = Sys_Ping($IP, 50);
//echo "$a  $IP   ";



$a = $a + 1;
$ID = $ArrayNetwork [$a];

if ($Test == true){SetValueBoolean($ID, true);}else {SetValueBoolean($ID, false);}
//echo "$a  $ID   ";
}

?>

Das Array wird auch richtig befüllt und auch meine Variablen bekommen die richtigen Werte aber ich bekomme bei jedem Durchlauf der Schleife (15x) folgende Fehlermeldung:

Notice: Undefined offset: 31 in C:\IP-Symcon\scripts\29505.ips.php on line 28

Notice: Undefined offset: 32 in C:\IP-Symcon\scripts\29505.ips.php on line 36

Warning: ‚‘ is not a valid integer value in C:\IP-Symcon\scripts\29505.ips.php on line 38

Einfacher ist es, wenn Du die IP Adressen direkt den Variablen zuweist.

$ArrayNetwork = array ( 
 'xxx.xxx.xxx.xx1' => 41012, 
'xxx.xxx.xxx.xx2' => 23873
usw....., 

Besten Dank, wieder was gelernt :slight_smile:

$IP = $ArrayNetwork [$a];

kann ich so ein Array auslesen? [$a] Denn in den Zeilen wo ich Variablen einsetze (Der Platz im Array/ ID/IP) bekomme ich die Fehlermeldungen.
Muss ich dort die Variablen anders kenzeichnen oder verwende ich den falschen Typ?

Mach doch mal ein

print_r($ArrayNetwork);

Debug ist das A&O wenn man etwas nicht versteht, so sieht man was das Ergebniss ist und kann darauf reagieren.

Ist bereits im Scriptbeispiel von oben angegeben :wink:
Habe ich auch schon gemacht, auch habe ich mir die Werte wärend der Schleife ausgeben lassen. Läuft alles zuverlässig, auch das Array wird richtig abgebildet, selbst die Variablen bekommen entsprechend des Onlinestatus der einzelnen Geräte die richtigen Werte zugewiesen. :confused:

Eigentlich könnte ich das jetzt laufen lassen, denn es verrichtet seinen Dienst, und die Fehlermeldung ignorieren… Aber dann weiß ich noch immer nicht was ich falsch gemacht habe…

Wenn es fehlerfrei laufen würde, hättest Du keine Fehlermeldungen. :confused:

Notice: Undefined offset: 31 sagt aus, das es eine 31 im Array nicht gibt.

Du zählst a+1. Wenn jetzt a 30 ist +1 = 31. Gibt es im Array nicht.

Deswegen hab ich mir auch $a mit ausgeben lassen, da ich mir sowas gedacht habe… :confused:

Ergenzung:

Ha! Habs… es sind ja nur 15 Durchläufe und nicht 30! Da lag der Fehler… Jetzt läuft das Script auch fix in 3,2sec durch :slight_smile: