Как я могу отобразить содержимое 2 ассоциативных массивов в одну таблицу?

это мой фрагмент кода, и результат не тот, который мне нужен. У меня есть 2 ассоциативных массива, и я хочу вывести их содержимое в одну таблицу, как до тега html. Как я могу это сделать?

    team A:                      team B:
player_one                   player_five
player_two                   player_six
player_three                 player_seven
player_four                  player_eight<html>
<head>

<title>Untitled</title>
</head>
<body>
<table widht='100%' border="1">
<tr>
<td>team A</td>
<td>team B</td>

</tr>

<?php

$team_a=array("goalkeeper"=>"player_one","defender"=>"player_two","midfielder"=>"player_three","forward"=>"player_four");
$team_b=array("goalkeeper"=>"player_five","defender"=>"player_six","midfielder"=>"player_seven","forward"=>"player_eight");foreach($team_a as $index1 => $value1 ){

foreach($team_b as $index2 => $value2 )
echo "<tr>
<td>$value1</td>
<td>$value2</td>

</tr>
";
}

?>

</table>
</body>
</html>

1

Решение

В качестве альтернативы, вы можете сначала объединить массивы и выстроить их в соответствие, распечатать их:

<?php

$team_a=array("goalkeeper"=>"player_one","defender"=>"player_two","midfielder"=>"player_three","forward"=>"player_four");
$team_b=array("goalkeeper"=>"player_five","defender"=>"player_six","midfielder"=>"player_seven","forward"=>"player_eight");

$teams = array();
$keys = array_keys($team_a);
foreach ($keys as $key) {
$teams[$key] = array($team_a[$key], $team_b[$key]);
}
?>
<table widht='100%' border="1">
<tr>
<td>team A</td>
<td>team B</td>
</tr>
<?php foreach($teams as $players): ?>
<tr>
<?php foreach($players as $player): ?><td><?php echo $player; ?></td><?php endforeach; ?>
</tr>
<?php endforeach; ?>
</table>

Выход

Или, если вы не хотите, чтобы исходные массивы касались или использовали новый массив, просто зациклите их соответственно:

<?php

$team_a=array("goalkeeper"=>"player_one","defender"=>"player_two","midfielder"=>"player_three","forward"=>"player_four");
$team_b=array("goalkeeper"=>"player_five","defender"=>"player_six","midfielder"=>"player_seven","forward"=>"player_eight");

?>
<table widht='100%' border="1">
<tr>
<td>team A</td>
<td>team B</td>
</tr>
<?php foreach($team_a as $key => $value): ?>
<tr>
<td><?php echo $value; ?></td><td><?php echo $team_b[$key]; ?></td>
</tr>
<?php endforeach; ?>
</table>
1

Другие решения

// drop indexes because you don't use them anyway
$a = array_values($team_a);
$b = array_values($team_b);

// process arrays
max = max(count($a), count($b));
for ($i=0; $i < $max; $i++) {
echo '
<tr>
<td>' . (isset($a[$i] ? $a[$i] : '-')) . '</td>
<td>' . (isset($b[$i] ? $b[$i] : '-')) . '</td>
</tr>
';
}
2

По вопросам рекламы ammmcru@yandex.ru
Adblock
detector