由于php中的数组定义,未定义的偏移通知

时间:2014-03-29 19:02:38

标签: php arrays

我尝试定义一个数组,但是虽然已经阅读了所有的建议,但执行时仍然会收到错误通知。

我的表单包含其他所有内容,字段min,用于定义

中的textareas数量
<input type="text" name="min[1]">

我的PHP文件有:

<?php
$min = $_POST['min'];
$area = array();

for($j=1; $j=<$length; $j++) {
if($_POST['row'][$j] != "") {

    if(($_POST['min'][$j])!="") {
    for($k=1;$k<=$min[$j];$k++) {
    $area[$j] .= '<textarea name="label'.$j.$k.'" rows="3"' ></textarea>';
    }}
    if(($_POST['min'][$j])=="") {
    $area[$j] = '<textarea name="label'.$j.$k.'" rows="3"'" ></textarea>';
    }
    $blah .= $j.') '.$row[$j].'<br/>'.$area[$j].'<div id="inner'.$j.'"></div><br/><br/>';
}}

我可以看到问题出在数组中,因为脚本试图找到不存在的键。所以如何提前确定这一点......这是有效的,但它没有解决方案,因为你可以:

$area = array("","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","",);

2 个答案:

答案 0 :(得分:1)

在检查其值之前,您需要检查该数组元素是否存在。

更改

if(($_POST['min'][$j])!="") {

if(isset($_POST['min'][$j]) && $_POST['min'][$j])!="") {

答案 1 :(得分:0)

$length未初始化...

在PHP中,第一个数组索引是0。

您可以使用foreach运算符迭代数组。

如果您在$_POST['min']中复制$min,请使用它。停止使用$_POST['min']令人困惑。