Hi!
$player ist so aufgebaut (Values pro array sind immer 10 Stk):
Aha, und welchen Sinn tragen die jeweiligen Werte?
Es geht um Bingo. Da sind es einfach nur Zahlen, ohne Bedeutung.
$player=array(
array('Aas53','1','17','25','7','12','5','33','55','45'),
array('Arwen7614','5','7','11','77','18','14','99','17','2'),
> Auch ich musste mir einst sagen lassen, dass "sprechende" Indizes grundsätzlich günstiger sind, da man später im Code besser durchblickt. Also in etwa so:
Man muss es aber nicht übertreiben, obwohl du vermutlich nur den Einsatzzweck übersehen hast. Deswegen wäre es eher sinnvoll, das Array so aufzubauen:
~~~php
$players = array(
'Aas53' => array('1','17','25','7','12','5','33','55','45'),
'Arwen7614' => array('5','7','11','77','18','14','99','17','2'),
...
);
Das setzt voraus, dass die Spielernamen jeweils nur einmal vorkommen. Ansonsten könnte man das noch so aufbauen:
$players = array(
array(
'name' => 'Aas53',
'zahlen' => array('1','17','25','7','12','5','33','55','45')),
array(
'name' => 'Arwen7614',
'zahlen' => array('5','7','11','77','18','14','99','17','2')),
...
);
Das ist dann aber beim Zugriff wieder etwas komplexer.
foreach ($player as $_player) {
foreach ($zahl as $_zahl) {
foreach ($_player as $eigenschaft => $wert) {
Zu umständlich. Du hast doch das Array der gezogenen Zahlen schon vereinfacht. Darüber muss man nicht mehr iterieren sondern nur noch die Zahlen des Spieler daraufhin untersuchen, ob sie darin vorkommen: in_array()
Die Einfärbung geschieht mittels CSS, in welchem der Klasse "besonders" bestimmte Darstellungseigenschaften zugewiesen werden können.
Im vorliegenden Bingo-Fall wäre wohl eher "gezogen" angebracht.
Es ist immer besser die einfachste Lösung[*] zu wählen - nur muss man erstmal drauf kommen.
[*] Einfach, aber auch vollständig, inklusive Fehlerbehandlung und anderer notwendiger Infrastruktur.
Lo!