循环中未定义的偏移通知

时间:2013-03-04 21:59:05

标签: php loops undefined offset

我正在使用脚本来创建其他表单行。 它循环某些文本字段的$ i数字 当我运行此脚本时,偏移量是未定义的,因为它不存在。 我需要使用if(isset())函数,但我不确定如何将它放在代码中。 有人可以帮忙吗?

for ($i=0; $i<100; $i++) {

    if ($text['length'][$i] == "") $text['length'][$i] = "0";
    if ($text['bredth'][$i] == "") $text['bredth'][$i] = "0";
    if ($text['height'][$i] == "") $text['height'][$i] = "0";
    if ($text['weight'][$i] == "") $text['weight'][$i] = "0.00";

所有以'if'开头的行显示通知:

  

注意:未定义的偏移量:第41行的C:\ xampp \ htdocs \ newparcelscript.php中的1

解决 事实上,我根本不需要和“如果”,因为行的创建和值的设置是一起运行的。

for ($i=0; $i<100; $i++) {

   $text['length'][$i] = "0";
   $text['breadth'][$i] = "0";
   $text['height'][$i] = "0";
   $text['weight'][$i] = "0.00";

3 个答案:

答案 0 :(得分:0)

取决于你在这里尝试做什么,我建议你使用以下isset / empty组合之一

if (isset($text['length'][$i]) == false or empty($text['length'][$i]) == true)

if (isset($text['length'][$i]) == true and empty($text['length'][$i]) == true)

错误最有可能来自针对不存在的索引的测试: if($ text ['length'] [$ i] ==“”)

答案 1 :(得分:0)

我认为empty()的测试就是你在这里寻找的。

for($i = 0; $i < 100; $i++)
{
    if(empty($text['length'][$i]) === TRUE) $text['length'][$i] = 0;
    ...
    ...
}

答案 2 :(得分:0)

对于这种情况,如果您需要插入未定义字段的值,请使用empty()

如果值为空字符串,则

empty()返回TRUE,而!isset()将返回FALSE。 关于此问题有很多问题,例如look here

这样的事情:

for ($i=0; $i<100; $i++) {
    if (empty($text['length'][$i])) $text['length'][$i] = "0";
    if (empty($text['bredth'][$i])) $text['bredth'][$i] = "0";
    if (empty($text['height'][$i])) $text['height'][$i] = "0";
    if (empty($text['weight'][$i])) $text['weight'][$i] = "0.00";
}