Ich habe 81 Variabeln und möchte denen jeweils einen Wert zuordnen. Und zwar habe ich eigentlich ein 9 x 9 Gitter mit einer Variable pro Feld. Inhalt des ersten Feldes ist dann $aa (=${$alphabet[0].$alphabet[0]}), das nächste Feld in dieser Zeile $ab (=${$alphabet[0].$alphabet[1]}), sprich die erste Variable in der Variabe beschreibt die Zeile und die zweite Variable in der Variable beschreibt die Spalte. $aa bedeutet demnach also erste Spalte, erste Zeile.
Den Inhalt eines Feldes generiere ich mit einer Zufallszahl von 1-9. Ziel ist es dass in einer Zeile eine bestimmte Zahl nur einmal vorkommt, also wie beim Sudoku ($aa darf nicht gleich $aj sein).
Habe bisher folgenden Code und komme irgendwie einfach nicht mehr weiter, alles Probieren hat nichts genützt.
// Variablennamen aa bis jj
// 9 x 9 Gitter
// Zeilennummer k
// Spaltennummer l
$alphabet = array(a,b,c,d,e,f,g,h,j);
for($k = 0; $k <= 8; $k++){
for($l = 0; $l <= 8; $l++){
// Wert wird Variable zugewiesen
${$alphabet[$k].$alphabet[$l]} = rand(1,9);
for($m = 0; $m <= $l; $m++){
// Wenn neuer wert aus Zeile k gleich ist wie ein vorheriger Wert aus Zeile k
// ordne der Variable einen neuen Wert zu
if(${$alphabet[$k].$alphabet[$l]} == ${($k).$m}){
${$alphabet[$k].$alphabet[$l]} = rand(1,9);
}else{
break;
}
}
}
}
Alles anzeigen