dedlfix: 2x foreach und formatierte Ausgabe

Beitrag lesen

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!