• Jetzt anmelden. Es dauert nur 2 Minuten und ist kostenlos!

Arrays vergleichen

Maximilian

Mitglied
Hey,

ich habe zwei zweidimensionale Arrays, eines davon assoziativ. Diese möchte ich nun miteinander vergleichen.
1. Array:
Array
(
[0] => Name0
[1] => Name1
[2] => Name2
[3] => Name3
)

2. Array

Array
(
[0] => Array
(
[spieler] => Name0
[ort] => Ort0
)

[1] => Array
(
[spieler] => Name1
[ort] => Ort1
)

[2] => Array
(
[spieler] => Name2
[ort] => Ort2
)

[3] => Array
(
[spieler] => Name3
[ort] => Ort3
)

)

Mein Ziel ist eine Tabelle folgender Form:

Name0 Name1 Name2 Name3
Ort0 Ort1 Ort2 Ort3

Das Problem ist, dass wenn z.B. bei Name1 kein Ort eingetragen wurde, sich die restlichen Tabellenzellen verschieben. Also dachte ich mir, gleiche ich jeweils die Namen mit den Spaltenüberschrieben ab und gebe - falls ein Treffer vorliegt - den Ort aus. Wenn keine Übereinstimmung vorliegt soll eine leere Zelle erzeugt werden.

Hier mein Ansatz (funktioniert natürlich nicht):

PHP:
    for($i=0; $i < sizeof($getSpielerHead); $i++){
   
            if($getSpielerHead[$i] == $getSpielerErgebnis[$i]['spieler']){
                echo "<td>"; print_r($getSpielerErgebnis[$i]['ort']); echo "</td>";
            } else {
                echo "<td></td>";
            }
    }

Über Antworten würde ich mich freuen :)
 
Werbung:
An sich sollte da eine For schleife reichen, weil du die restlichen Felder alle fix definiert hast (der key steht fest).
Der Vorteil bei deinem Array ist, das der Key auf jeden Fall da ist und er - wenn auch leer - abgefragt werden kann.
Dadurch brauchst du keine extra Abfrage ob das Feld existiert sondern kannst wie schon gesagt einfach mit einer For Schleife durchs Array gehen.
  1. $Spieler= "";
  2. $Ort= "";
  3. for($i=0; $i < count($Array); $i++){
  4. $Spieler .= "<td>$Array[$i]['Spieler']</td>";
  5. $Ort .= "<td>$Array[$i]['Ort']</td>";
  6. }
  7. echo $Spieler;
  8. echo $Ort;
Habs nicht getestet... aber theoretisch sollte das so funktionieren...
 
Zurück
Oben