未初始化的数组偏移量

0 php forms arrays

我正在使用PHP创建一个包含字段数组的表单.基本上,您可以在表单中添加无限数量的"人",每个人都有名字,姓氏和电话号码.表单要求您仅为第一个人添加电话号码.如果您将电话号码字段留空,则应将处理程序文件编程为使用第一个人的电话号码.

所以,我的领域是:

person[] - 隐藏字段,其值为此人的主键.

fname[] - 输入字段

lname[] - 输入字段

phone[] - 输入字段

我的表单处理程序如下所示:

$people = $_POST['person']
$counter = 0;

foreach($people as $person):
    if($phone[$counter] == '') {
    // use $phone[0]'s phone number
    } else {
    // use $phone[$counter] number
    }
    $counter = $counter + 1;
endforeach;
Run Code Online (Sandbox Code Playgroud)

PHP虽然不喜欢这样,但却让我失望了

Notice: Uninitialized string offset error.  
Run Code Online (Sandbox Code Playgroud)

我通过在people,fname,lname和phone上运行is_array函数来调试它,它返回true作为数组.我也可以手动回显$ phone [2]等,并获得正确的值.我还在$ counter变量上运行了is_int,它返回true,所以我不确定为什么这不能按预期工作?

任何帮助都会很棒!

nc3*_*c3b 8

我很确定phone[$counter]应该是$phone[$counter].否则它会将"phone"视为字符串.