所以我的html中有一些输入格式如下
<input name="First_Corp[FirstName]" />
<input name="First_Corp[LastName]" />
<input name="Second_Corp[FirstName]" />
<input name="Second_Corp[LastName]" />
这些已按预期发布到php处理页面。因此$_POST["First_Corp"]["FirstName"]
给出正确输入的值。我将它们按数组分组,以便可以对它们进行格式化和正确分组以形成收据(这远远超过了4个输入)。
当我遍历$_POST
(使用foreach($_POST as $key=>$value)
)时,我有一个条件检查该值是否为数组,这很好用。如果该值不是数组,则将这些值打印到收据上。如果是数组,则应独立遍历该数组,以将这些输入一起添加到收据中。
但是,当我得到数组值时,我正在使用检查以确保至少设置了一个值(某些值是自动设置的,并且我不想添加仅具有自动设置的输入)。
当我在$value
是一个数组的条件下回显$value
时,我收到“数组到字符串转换”的通知,并且它回显了“数组”一词。正如预期的那样。但是,当我尝试将$value
用作数组,即$value["FirstName"]
时,会收到非法的字符串偏移量错误。我相信这意味着我将字符串视为数组吗?
因此,我现在在条件语句之前回显该值,并在条件if(is_array($value)
中添加了一个检查.........
回声会打印出“数组”,告诉我该值实际上是一个数组。但是,条件语句再也不会运行,告诉我$ value不是数组。有人知道为什么会这样吗?我有以下代码:
echo $value;
if (is_array($value) and $value['FirstName'] !== ""){
给出输出:
注意:未初始化的字符串偏移量:第90行的... / test2.php中的0
注意:第89行的... / test2.php中的数组到字符串的转换
数组
(第89行是echo $value
行;第90行是有条件的)
此外,我知道'FirstName'元素在所有与POST一起提交的数组中,因此它不会是无效的索引问题。我正在提交名字,所以他们不是空的。因此,条件条件应该每次都运行(直到我添加is_array
检查之前它一直在运行)。
答案 0 :(得分:0)
对代码进行以下更改
if(is_array($value) && $value['FirstName']!='')
{
echo $value['FirstName'];
}