Willkommen in der Webstatt Zum Webstatt Blog und Stories
Neals am 14.01.07 23:08

Ich habe ein Feld welches 3x3 groß ist und will testen ob in diesem Feld keine Zahlen von 1 bis 9 doppelt vorkommen.
Feldbeispiel:
$feld= array(
1 => array(1=>7, 2=>3, 3=>1),
2 => array(1=>4, 2=>6, 3=>5),
3 => array(1=>2, 2=>8, 3=>9));

Schleife welche zu lange Ladezeiten hervorruft:
for($y=1; $y<=3; $y++) {
for($x=1; $x<=3; $x++) {
if($feld[$y][$x] != NULL) {
for($ya=1; $ya<=3; $y++) {
for($xa=1; $xa<=3; $x++) {
if(($y != $ya)&&($x != $xa)&&($feld[$y][$x] == $feld[$ya][$xa])) {
return false;
}
}
}
}
}
}


Als Meldung bekomme ich:
Fatal error: Maximum execution time of 60 seconds exceeded in C:\Programme\XAMPP\htdocs\feld.php on line 7

Danke für Hilfe, Leute ;-)

netcup.de Warum gibt es hier Werbung?
Johannes am 14.01.07 23:22

Ohne mir das genau angeschaut zu haben fällt mir auf, dass in Zeile 4 und 5 jeweils ya und xa abgefragt werden, aber es wird y bzw x +1 gerechnet. Das gibt dann ne Endlosschleife.
Lösung wäre also:


for($ya=1; $ya<=3; $ya++) {
for($xa=1; $xa<=3; $xa++) {

Neals am 14.01.07 23:35

Autsch, das tut weh, sowas zu übersehen...


Danke dir ;-)


/closed

Creative Commons Lizenzvertrag
Alle Inhalte des Webstatt-Archivs stehen unter einer Creative Commons Namensnennung - Weitergabe unter gleichen Bedingungen 3.0 Unported Lizenz.

Impressum & Kontakt