Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/arrays/12.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Php 警告:多维数组中的字符串偏移量非法_Php_Arrays_Multidimensional Array - Fatal编程技术网

Php 警告:多维数组中的字符串偏移量非法

Php 警告:多维数组中的字符串偏移量非法,php,arrays,multidimensional-array,Php,Arrays,Multidimensional Array,在下面的代码中,我试图使用echo$r_id[$d_id]['name'];“其中$r_id=china和$d_id=china1在上一页中定义,以便复制echo$china['china1']['name'];,这将为我提供数组中牛肉和西兰花的值 <?php $china = array( 'china1'=> array( 'cat'=> "Chinese", 'id'=>"C1", 'name'=>"Beef and Broccoli", 'instructi

在下面的代码中,我试图使用
echo$r_id[$d_id]['name'];“
其中
$r_id=china
$d_id=china1
在上一页中定义,以便复制
echo$china['china1']['name'];
,这将为我提供数组中牛肉和西兰花的值

<?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'];

?>
我哪里弄错的? 上一页的代码:

        <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>

您不能将变量直接传递到URL:
。您应该像
那样在URL中打印变量,然后它就可以工作了


在这个页面上,
$r\u id
现在是
'china'
,如果你想
echo$r\u id[$d\u id]['name'];
变成
echo$china['china']['name'];
,那么你需要做
$$r\u id[$d\u id]['name']
,注意双美元符号,它定义了一个。

你确定设置了$d\u id吗?如果$r\u[$id[/id],这个错误就会发生未设置,即$d_id键不存在。最好的猜测是,如果(isset($\u GET[“r_id”])被绕过,因为r_id未设置。@dwhite.me这是我在上一页中使用的:这似乎不是问题,因为我收到了错误消息“注意:未定义变量:$“在前两条错误消息的基础上。您好,很抱歉,当我将您的标记内容替换为我的标记内容时,我收到通知:未定义变量:r_id和d_id。请不要抱歉,但我的解决方案应该可以工作。”。很难看出根错误在哪里。如果您在上一页、本页以及本页的URL中发布代码,可能会有所帮助。是当前页面的URL。问题中上一页的代码。谢谢你花时间回复我,应该会有用的。我猜某处有个愚蠢的错误
未定义变量:r\u id和d\u id
表示代码从未进入if语句,这表示
isset($\u GET[“r\u id”])
if(isset($\u GET[“d\u id”])
返回
false
。为了避免将来出现这种情况,您可以先尝试将变量定义为空字符串,这样它就不会返回为
undefined
。现在,试试
var\u dump
-ing
$\u-GET
isset($\u-GET[“r\u-id]”)])
等,看看有没有什么有用的东西?这很可能是一个愚蠢的打字错误。
        <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>