2015-08-26 1 views
1

Les gars, j'essaie de faire correspondre un tableau à deux dimensions. Voici le code qui montre ce que je fais:tableau bidimensionnel correspondant

$games = array("Game1" => "Team 2 vs. Team 3", "Game2" => "Team 1 vs. Win 1","Game3" => "Loser Game 1 vs. Loser Game 2","Game4" => "Win Game 2 vs. Win Game 3", "Game5" => "Win Game 4 vs. Loser Game 4 (If Loser 4 is First Loss)"); 

$time= array("06:00 " => "06:30","06:30 " => " 07:00","07:00" => "07:30","07:30" =>"08:00","08:00" => "08:30"); 

foreach($games as $games => $versus) 
{ 
    foreach($time as $start_time => $end_time) 
    { 
     echo $games . ": ". $versus ." ". $start_time. " to " . $end_time . "<br>"; 
    } 
} 

Cependant, cette commande affiche

Game1: Team 2 vs. Team 3 = 06:00 to 06:30 
Game1: Team 2 vs. Team 3 = 06:30 to 07:00 
Game1: Team 2 vs. Team 3 = 07:00 to 07:30 
Game1: Team 2 vs. Team 3 = 07:30 to 08:00 
Game1: Team 2 vs. Team 3 = 08:00 to 08:30 
Game2: Team 1 vs. Win 1 = 06:00 to 06:30 
Game2: Team 1 vs. Win 1 = 06:30 to 07:00 
Game2: Team 1 vs. Win 1 = 07:00 to 07:30 
Game2: Team 1 vs. Win 1 = 07:30 to 08:00 
Game2: Team 1 vs. Win 1 = 08:00 to 08:30 
Game3: Loser Game 1 vs. Loser Game 2 = 06:00 to 06:30 
Game3: Loser Game 1 vs. Loser Game 2 = 06:30 to 07:00 
Game3: Loser Game 1 vs. Loser Game 2 = 07:00 to 07:30 
Game3: Loser Game 1 vs. Loser Game 2 = 07:30 to 08:00 
Game3: Loser Game 1 vs. Loser Game 2 = 08:00 to 08:30 
Game4: Win Game 2 vs. Win Game 3 = 06:00 to 06:30 
Game4: Win Game 2 vs. Win Game 3 = 06:30 to 07:00 
Game4: Win Game 2 vs. Win Game 3 = 07:00 to 07:30 
Game4: Win Game 2 vs. Win Game 3 = 07:30 to 08:00 
Game4: Win Game 2 vs. Win Game 3 = 08:00 to 08:30 
Game5: Win Game 4 vs. Loser Game 4 (If Loser 4 is First Loss) = 06:00 to 06:30 
Game5: Win Game 4 vs. Loser Game 4 (If Loser 4 is First Loss) = 06:30 to 07:00 
Game5: Win Game 4 vs. Loser Game 4 (If Loser 4 is First Loss) = 07:00 to 07:30 
Game5: Win Game 4 vs. Loser Game 4 (If Loser 4 is First Loss) = 07:30 to 08:00 
Game5: Win Game 4 vs. Loser Game 4 (If Loser 4 is First Loss) = 08:00 to 08:30 

et je veux afficher comme ça au lieu

Game1: Team 2 vs. Team 3 06:00 to 06:30 
Game2: Team 1 vs. Win 1 06:30 to 07:00 
Game3: Loser Game 1 vs. Loser Game 2 07:00 to 07:30 
Game4: Win Game 2 vs. Win Game 3 = 07:30 to 08:00 
Game5: Win Game 4 vs. Loser Game 4 (If Loser 4 is First Loss) = 08:00 to 08:30 

Comment puis-je résoudre ce ? Merci à l'avance qui m'aident ..

+0

Je ne sais pas si cette partie est correcte: 'foreach ($ jeux comme des jeux $ => $ versus) 'Je pense que ça devrait être' foreach ($ games comme $ game => $ versus) ' – Maximus2012

+0

Afin de faire ce que vous essayez de faire, vous avez besoin d'une sorte de connexion entre les tableaux' $ games' et '$ time' que vous n'avez pas. Vous pouvez les combiner dans un tableau '$ games_time'. – Maximus2012

+0

J'ai mis à jour ma réponse .Code obtiendra les résultats que vous voulez. – mdamia

Répondre

3

Si vous avez le contrôle sur les tableaux, je voudrais aller avec une structure différente où vous pouvez facilement faire correspondre les jeux et les temps.

Mais, puisque vous ne disposez pas des touches numériques vous devez obtenir la clé key() et la valeur current() du tableau $time et faire avancer le pointeur de tableau à chaque itération de boucle:

foreach($games as $game => $versus) 
{ 
    echo $game . ": " . $versus ." ". key($time) ." to ". current($time) ."<br>"; 
    next($time); 
} 

En fait, il pourrait être plus simple en utilisant each():

foreach($games as $game => $versus) 
{ 
    list($start, $end) = each($time); 
    echo $game . ": " . $versus ." ". $start ." to ". $end ."<br>"; 
} 
1

Vous pouvez essayer de combiner les jeux et heure de début/fin dans un tableau multidimensionnel si possible (ce qui est juste l'une des nombreuses approches possibles). Cet exemple est pour 2 jeux mais vous pouvez ajouter plus à lui:

$games = array(
    "Game1" => 
      Array(
       "versus" => "Team 2 vs. Team 3", 
       "start_time" => "06:00", 
       "end_time" => "06:30" 
      ), 
    "Game2" => 
      Array(
       "versus" => "Team 1 vs. Win 1", 
       "start_time" => "06:30", 
       "end_time" => "07:00" 
      ) 
); 

foreach ($games as $game => $arr) 
{ 
    echo "<br>"; 
    echo $game . ": versus : " . $arr['versus'] . ": start_time: "; 
    echo $arr['start_time'] . ": end_time: " . $arr['end_time']; 
} 

Sortie:

Game1: contre: l'équipe 2 contre l'équipe 3: start_time: 06h00: end_time: 06: 30

Game2: contre: Equipe 1 vs Win 1: start_time: 06h30: end_time: 07:00

+0

Avez-vous lu la question? – RiggsFolly

+0

@RiggsFolly oui je l'ai fait. C'est juste une autre façon de faire ce que OP essaie d'accomplir. Cela ne fonctionnera que dans le cas où il est possible de combiner les deux tableaux en un seul tableau multi-dimensionnel comme je l'ai mentionné. – Maximus2012

+0

@RiggsFolly Ça va. Si vous n'aimez pas ma réponse, alors allez-y et descendez-la ou l'OP peut la réduire. Fin de la matière. pourquoi en faire sortir un problème. – Maximus2012