В коде ниже я пытаюсь использовать echo $r_id[$d_id]['name'];"
где $r_id = china
и $d_id = china1
были определен в предыдущей странице, чтобы повторить echo $china['china1']['name'];
, который даст мне значение Говядины и Брокколи из массива.Предупреждения: Illegal строка смещение, из многомерного массива
<?php
$china = array(
'china1'=> array(
'cat'=> "Chinese",
'id'=>"C1",
'name'=>"Beef and Broccoli",
'instruction'=> "Placeholder")
);
if(isset($_GET["r_id"])){
if(isset($_GET["d_id"])){
$r_id = $_GET["r_id"];
$d_id = $_GET["d_id"];
}
}
echo $r_id[$d_id]['name'];
?>
Но я получаю это:
Warning: Illegal string offset 'china1' in....
Warning: Illegal string offset 'name' in....
Откуда я это не так? Код предыдущей страницы:
<table border = 1px align = center style = "margin-top:100px;">
<tr>
<td><a href="recipes.php?r_id=china&d_id=china1"><img src="images/china1icon.jpg"/></a></td>
<td><img src="images/vietnam1icon.jpg"/></td>
<td><img src ="images/japan1icon.jpg"/></td>
<td><img src ="images/korea1icon.jpg"/></td>
</tr>
</table>
Вы уверены, что набор $ d_id установлен? Эта ошибка возникла бы, если $ r_id [$ d_id] не задан, т. Е. Ключа $ d_id не существует. Лучше предположить, что if (isset ($ _ GET ["r_id"])) обходит, потому что r_id не установлен. – ggdx
@ dwhite.me Это было то, что я использовал на предыдущей странице: – JayyJayy