多维数组未定义索引问题

时间:2011-08-23 14:54:18

标签: php multidimensional-array

我从HTML表单中获取多维数组。当我想获得单个值时,例如

$chapters = $_POST["chapters"];

echo $chapters[0]["title"];

它说未定义索引title

当我打印数组时,它显示为

Array
(
    [chapters] => Array
        (
            [0] => Array
                (
                    ['title'] => this is title
                    ['text'] => this is text
                    ['photo'] => this is photo source
                    ['photo_caption'] => photo caption
                )

        )
)

3 个答案:

答案 0 :(得分:5)

根据您的意见,问题似乎如下:

print_r从不打印字符串键的引号。如果你没有以某种方式操纵输出,那么它只能意味着单引号实际上是键的一部分。

这应该有效:

echo $chapters[0]["'title'"];

但你能更好地修理钥匙。

来自你的评论:

  

问题是我在html表单中使用单引号(name="chapter[0]['photo_caption']"),更正为name="chapter[0][photo_caption]"解决了问题

答案 1 :(得分:4)

根据您的输出,您应该使用$chapters["chapters"][0]["title"]

请注意,您的输出中有3个嵌套数组,因此您需要深入3个级别才能获得您的值。

答案 2 :(得分:0)

是的,我遇到了同样的问题。然后我意识到,我的钥匙做错了。 实际上,我在将表单元素命名为数组时使用了引号

实施例 -

echo "<input type='hidden' name= userprogramscholarship[$user->id]['checkstatus'] value= $val />";

我更正并删除了以下引号

echo "<input type='hidden' name= userprogramscholarship[$user->id][checkstatus] value= $val />";

这是一个小错误。删除了引号,然后就可以了。