无法访问 php 数组的元素

Can't access elements of a php array

我真的很生气,我想知道是否有人能看出我做错了什么。我有一个填充数组 "Rehearsals" 的表单。到目前为止,一切都很好。如果我按下提交后,我恢复了预演的值,我可以得到一个 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 是递增计数器。

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

将您的代码更改为:

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

更重要的是,这个位:

$row['plan'];

因为$row是一个数组,所以你这样抓。

使用->抓取对象。

如果您更喜欢使用对象表示法访问 $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
}