Печать многомерного массива по ключу

У меня есть такой массив:

$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>
';
}

Может кто-нибудь, пожалуйста, помогите мне

0

Решение

Этот цикл связан с таким массивом

$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")

);

Пытаться! 🙂

1

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

С $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>
';
}
0

Попробуйте это без изменения формата массива.

<?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")

);
0

Должно быть так:

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>
';
}
-1