php 数组 returns 未定义但 print_r 显示为其他
php array returns undefined but print_r shows otherwise
foreach($jsonmediationinfo as $value1) {
echo $value1['mstatus'];
print_r($jsonmediationinfo);
}
输出:
1Array ( [0] => Array ( [mstatus] => 1 [mhearingnum] => first [mminutes] => adakjaflafjlarjkelfkalfkd;la ) [1] => Array ( [mhearingnum] => second [mminutes] => ) [2] => Array ( [mhearingnum] => third [mminutes] => ) )
Undefined index: mstatus in ... on line 265
第 265 行是 echo $value1['mstatus'];
这是我的 php 服务器端 code.This 用于将数据保存到数据库中,但我在第 265 行中未定义 index:mstatus
。但是在 print_r
索引中mstatus
显然存在。此外,如果我在更新数据时签入数据库,则值会更改为正确的值。在此示例中,值更改为 1
.
这行代码有什么问题。任何建议表示赞赏
您要循环的数组如下所示:
Array (
[0] => Array (
[mstatus] => 1
[mhearingnum] => first
[mminutes] => adakjaflafjlarjkelfkalfkd;la
)
[1] => Array (
[mhearingnum] => second
[mminutes] =>
)
[2] => Array (
[mhearingnum] => third
[mminutes] =>
)
)
只有第一个索引处的子数组包含mstatus
,因此在循环的第二次迭代时抛出异常。最好使用 isset($value1['mstatus'])
.
检查是否存在 mstatus
foreach ($jsonmediationinfo as $value1) {
if (isset($value1['mstatus'])) {
echo $value1['mstatus'];
print_r($jsonmediationinfo);
}
}
在现实生活中,您可以这样处理您的状态:
foreach ($jsonmediationinfo as $value1) {
if (isset($value1['mstatus']) && ($value1['mstatus'] === 1 || $value1['mstatus'] === true)) {
// Do something with the positive status
} else {
// Do something with the negative/missing status
}
}
正如 RuubW 提到的那样
你也可以像这样处理现实生活中的情况
foreach ($jsonmediationinfo as $value1) {
if (array_key_exists('mstatus',$value1)) {
echo $value1['mstatus'];
}
print_r($jsonmediationinfo);
}
foreach($jsonmediationinfo as $value1) {
echo $value1['mstatus'];
print_r($jsonmediationinfo);
}
输出:
1Array ( [0] => Array ( [mstatus] => 1 [mhearingnum] => first [mminutes] => adakjaflafjlarjkelfkalfkd;la ) [1] => Array ( [mhearingnum] => second [mminutes] => ) [2] => Array ( [mhearingnum] => third [mminutes] => ) )
Undefined index: mstatus in ... on line 265
第 265 行是 echo $value1['mstatus'];
这是我的 php 服务器端 code.This 用于将数据保存到数据库中,但我在第 265 行中未定义 index:mstatus
。但是在 print_r
索引中mstatus
显然存在。此外,如果我在更新数据时签入数据库,则值会更改为正确的值。在此示例中,值更改为 1
.
这行代码有什么问题。任何建议表示赞赏
您要循环的数组如下所示:
Array (
[0] => Array (
[mstatus] => 1
[mhearingnum] => first
[mminutes] => adakjaflafjlarjkelfkalfkd;la
)
[1] => Array (
[mhearingnum] => second
[mminutes] =>
)
[2] => Array (
[mhearingnum] => third
[mminutes] =>
)
)
只有第一个索引处的子数组包含mstatus
,因此在循环的第二次迭代时抛出异常。最好使用 isset($value1['mstatus'])
.
mstatus
foreach ($jsonmediationinfo as $value1) {
if (isset($value1['mstatus'])) {
echo $value1['mstatus'];
print_r($jsonmediationinfo);
}
}
在现实生活中,您可以这样处理您的状态:
foreach ($jsonmediationinfo as $value1) {
if (isset($value1['mstatus']) && ($value1['mstatus'] === 1 || $value1['mstatus'] === true)) {
// Do something with the positive status
} else {
// Do something with the negative/missing status
}
}
正如 RuubW 提到的那样
你也可以像这样处理现实生活中的情况
foreach ($jsonmediationinfo as $value1) {
if (array_key_exists('mstatus',$value1)) {
echo $value1['mstatus'];
}
print_r($jsonmediationinfo);
}