Abfrage ob ein Subaray existiert

xloouch

Erfahrenes Mitglied
Hallo zusammen

Ich habe ein kleines, banales Problem, welches ich aber nicht verstehe..

Ich habe einen zweidimensionales Array.
PHP:
$array[$x][$y];

Die einzlenen Felder innerhalb dieses Arrays können ebenfalls einen Array enthalten, welcher Daten für eine "Tabelle" enthält.
z.b. Duration (also wielang geht der Eintrag)

PHP:
$array[$x][$y]["Duration"];

Nun zum Problem. Ich will nun Abfragen, in welchem der einzelnen Felder es
a) einen Array gibt
und
b) existiert das Subarrayfeld "Duration".

Wollte es nun wie folgt machen:

PHP:
if(isset($array[$x][$y]["Duration"])==true){
	$duration=$array[$x][$y]["Duration"];
} else {
	$duration=0;
}

Jedoch, wenn ich das mache, gibt mir das Script immer den ersten Buchstaben, oder eine 1 in den Feldern aus, welche nicht gefüllt sind. Die Felder, welche jedoch gefüllt sind, gibt er mir den richtigen Wert aus.

Könnt ihr mir sagen, wieso dies geschiet? Ich frage ja konkret ab, ob es das Feld "Duration" gibt.. Falls nicht, soll er es auf 0 setzen..

Danke für eure Hilfe im voraus.
 
Versuch mal:
PHP:
array_key_exists( 'Duration',$array[$x][$y] )

PHP:
$array = array();
$array[1][1]['Duration'] = 500;
$array[2][2] = 'FooBar';
var_dump( array_key_exists( 'Duration',$array[1][1] ) ); // TRUE
var_dump( array_key_exists( 'Duration',$array[2][2] ) ); // FALSE
 
Zuletzt bearbeitet:
Hi,
an dem Teil deines Scriptes ist nichts Falsches zu entdecken. Eventuell befindet sich dein Bug beim Befüllen des Arrays. Poste vielleicht den ganzen Code.

lg
 
Hallo Lomes und hans jörg

@Lomes

Dank Dir.. hat wunderbar funktioniert. Erhalte nun die richtigen Werte.

Hier die angepasste Version:

PHP:
if(@array_key_exists('Duration',$array[$x][$y])){
	$duration=$array[$x][$y]["Duration"];
} else {
	$duration=0;
}

@Hans Jörg

Die Befüllung klappt. Durch den Tipp von Lomes funktioniert es nun..

Danke für die Hilfe
 
Zurück