无法访问php数组的元素

时间:2015-01-30 14:41:44

标签: php arrays forms

我真的在撕扯我的头发,我想知道是否有人能看出我做错了什么。我有一个填充阵列的表格"排练"。到现在为止还挺好。如果在我按下提交后,我恢复了排练的值,我可以获得变量的print_r,但变量本身没有内容所以:

$rhearsal = $_POST['rehearsal'];
foreach($rhearsal as $row) {
    print_r($row);
    echo "<br>plan:" . $row->plan . "<br><br>";
}

给出输出:

Array ( 
    [Name] => A***** M***** 
    [Rehearsal_no] => 1 
    [Rehearsal] => Spring15-150106-1900 
    [plan] => Yes 
    [actual] => Yes 
) 
plan:

换句话说,当我使用print_r打印它时,$row中存在该变量,但当我尝试使用$row->plan访问它时,它具有空值。

我之前已经使用变量做了很多次,但没有使用输入表单。如果有任何帮助,输入表单的格式为:<input type='hidden' name='rehearsal[$counter][Name]' value='$usern'>其中$counter是递增计数器。

任何人都有任何想法 - 我浪费了一天试图解决这个问题 - 以不同方式打字和重新输入。谢谢:))

2 个答案:

答案 0 :(得分:4)

将您的代码更改为:

$rhearsal = $_POST['rehearsal'];
foreach($rhearsal as $row) {
    print_r($row);
    echo "<br>plan:" . $row['plan'] . "<br><br>";
}

更重要的是,这一点:

$row['plan'];

由于$row是一个数组,你可以这样抓住它。

使用->抓取对象。

答案 1 :(得分:0)

如果您希望使用对象表示法访问$row中的值,则可以将$row转换为对象:

$rhearsal = $_POST['rehearsal'];
foreach($rhearsal as $row) {
    print_r($row);           // here $row is an array()
    $row = (object)$row;
    print_r($row);           // and now it's an object (stdClass)
    echo "<br>plan:" . $row->plan . "<br><br>";        // this works as expected
}