У меня есть такой массив:
$games_array = array(
"game-one-id" => array(
array("name" => "Game One"),
array("url" => "game-one-url"),
array("asd" => "asdfg")
),
"game-two-id" => array(
array("name" => "Game Two"),
array("url" => "game-two-url"),
array("asd" => "asdfg")
)
);
и я хочу перечислить все игры в $games_array
и распечатать некоторые свойства каждой игры, например ее URL.
Это то, что я придумал, но ничего не напечатано:
foreach ($games_array as $game_id => $game_data) {
echo '
<table><tr>
<td><a href="http://www.example.com/game/' . $game_data["url"] . '/">' . $game_data["name"] . '</a></td>
</tr></table>
';
}
Может кто-нибудь, пожалуйста, помогите мне
Этот цикл связан с таким массивом
$games_array = array(
"game-one-id" => array(
"name" => "Game One",
"url" => "game-one-url",
"asd" => "asdfg"),
"game-two-id" => array(
"name" => "Game Two",
"show_compatibility" => "game-two-url",
"asd" => "asdfg")
);
Пытаться! 🙂
С $game_array
вы используете, вы должны использовать:
foreach ($games_array as $game_id => $game_data) {
echo '
<table><tr>
<td><a href="http://www.example.com/game/' . $game_data[1]["url"] . '/">' . $game_data[0]["name"] . '</a></td>
</tr></table>
';
}
Переменная $game_array
должно быть:
$games_array = array(
"game-one-id" => array(
"name" => "Game One",
"url" => "game-one-url",
"asd" => "asdfg"),
"game-two-id" => array(
"name" => "Game Two",
"show_compatibility" => "game-two-url",
"asd" => "asdfg")
);
Если вы хотите использовать:
foreach ($games_array as $game_id => $game_data) {
echo '
<table><tr>
<td><a href="http://www.example.com/game/' . $game_data["url"] . '/">' . $game_data["name"] . '</a></td>
</tr></table>
';
}
Попробуйте это без изменения формата массива.
<?php
$games_array = array(
"game-one-id" => array(
array("name" => "Game One"),
array("url" => "game-one-url"),
array("asd" => "asdfg")
),
"game-two-id" => array(
array("name" => "Game Two"),
array("url" => "game-two-url"),
array("asd" => "asdfg")
)
);
foreach ($games_array as $game_id => $game_data) {
//var_dump($game_data);
echo '
<table><tr>
<td><a href="http://www.example.com/game/' . $game_data[1]["url"] . '/">' . $game_data[0]["name"] . '</a></td>
</tr></table>
';
}?>
Изменить формат массива как
$games_array = array(
"game-one-id" => array(
"name" => "Game One",
"url" => "game-one-url",
"asd" => "asdfg"),
"game-two-id" => array(
"name" => "Game Two",
"show_compatibility" => "game-two-url",
"asd" => "asdfg")
);
Должно быть так:
foreach ($games_array as $game_id => $game_data) {
echo '
<table><tr>
<td><a href="http://www.example.com/game/' . $game_data["url"] . '/">' . $game_data[0]["name"] . '</a></td>
</tr></table>
';
}
Каждый массив, который вы указали в качестве дочернего идентификатора игры, не имеет ключа. По умолчанию это будет ключ, начинающийся с 0 и повышающийся на 1 каждый раз. Я думаю, что вы, вероятно, предпочли бы сделать это так:
$games_array = array(
"game-one-id" => array("name" => "Game One","url" => "game-one-url","asd" => "asdfg")
);
foreach ($games_array as $game_id => $game_data) {
echo '
<table><tr>
<td><a href="http://www.example.com/game/' . $game_data["url"] . '/">' . $game_data["name"] . ' - ' . $game_data["url"] . '</a></td>
</tr></table>
';
}