You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何通过键名获取PHP数组值?表单提交数组取值异常求助

问题解决:无法访问PHP数组中的rule键

嘿,这个问题我遇见过!原因出在你HTML里input的name属性写法上,咱们一步步来理清楚:

问题根源

你写的input name是new_date['rule'][],PHP在解析这种表单数据的时候,会把括号里的单引号也当作键名的一部分。也就是说,你的$_POST['new_date']数组里,实际的键名不是rule,而是'rule'(注意是包含单引号的字符串)。

看你输出的数组结构就能确认:

Array (
    ['rule'] => Array ( [0] => rule_5a6c50ff02fff )
    ['date'] => Array ( [0] => 2018-05-24 )
)

这里的['rule']其实表示键名是'rule',而不是你以为的rule。所以当你用$var['rule']去访问时,自然找不到对应的值,返回空。

两种解决方案

方案1:修正HTML的name写法(推荐)

把input的name里的单引号去掉,改成不带引号的形式:

<input type="hidden" name="new_date[rule][]" value="hfgfgfgfg"> 
<input type="date" name="new_date[date][]" />

这样PHP解析后,$_POST['new_date']的键名就是rule和date,直接用$var['rule']就能正常获取数组值了。

方案2:如果不能修改HTML,直接访问带单引号的键名

如果你暂时没法改HTML代码,那访问的时候要匹配实际的键名(带单引号),可以这样写:

// 用双引号包裹键名,里面的单引号直接写
print_r($var["'rule'"]);

// 或者用单引号包裹,转义里面的单引号
print_r($var['\'rule\'']);

这样就能正确获取到对应的值了。

内容的提问来源于stack exchange,提问作者Tracy

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.05.28 06:21:42