无法访问 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
}
我真的很生气,我想知道是否有人能看出我做错了什么。我有一个填充数组 "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
}