php - PHP处理张贴数组
问题描述
所以我在我的 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
在条件 where $value
is an array 中回显时,我得到“数组到字符串转换”的通知,它回显出单词“array”。正如预期的那样。但是当我尝试$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
检查)。
解决方案
对您的代码进行以下更改
if(is_array($value) && $value['FirstName']!='')
{
echo $value['FirstName'];
}
推荐阅读
- c# - 使用 stardog 从 C# 发送 SPARQL 查询:“无法在读取端点上执行更新查询”
- ios - 某些 iphone 中的 2 列 collectionview 大小问题
- node.js - 在带有时间戳的 kibana 中没有结果符合您的搜索条件
- r - 使用具有多个条件的 ifelse 编程 R
- python - 使用 dateutil.parse 解析不完整的日期
- code-analysis - Visual Studio 2017 代码分析 - 有哪些选项?
- spring-boot - 将 JAX-RPC Web 服务迁移到 Spring-WS
- python - 在 Python 中解码 unicode 字符串变量
- android - Android可以在应用程序处于前台时停止服务吗?
- cmake - Qt 和 CMake 集成