Webstatt.org - Community seit 2006 - 2012 (2024?)

3x3 Feld verursacht zu hohe Ladezeit

user-265
14.01.2007 22: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 zwinkern

user-203
14.01.2007 22: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++) {

Denkt dran, Kinder auf dem Rücksitz verursachen Unfälle, Unfälle auf dem Rücksitz verursachen Kinder.
user-265
14.01.2007 22:35

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


Danke dir zwinkern


/closed