我正在为Zen Cart的模块编写一些代码。 $ stores_id是一个包含3个值的数组:
$stores_id[0]="1";
$stores_id[1]="2";
$stores_id[2]="3";
使用以下代码,我试图回显一个隐藏的输入字段,填充数组中的数据
for ($i=0, $n=sizeof($stores_id); $i<$n; $i++)
{
echo zen_draw_hidden_field('stores_id['. $stores_id[$i]['stores_id'] .']', htmlspecialchars(stripslashes($stores_id[$stores_id[$i]['stores_id']]), ENT_COMPAT, CHARSET, TRUE));
}
回显的结果是:
<input type="hidden" value="2" name="stores_id[1]">
<input type="hidden" value="3" name="stores_id[2]">
<input type="hidden" name="stores_id[3]">
虽然我期望它是:
<input type="hidden" value="1" name="stores_id[1]">
<input type="hidden" value="2" name="stores_id[2]">
<input type="hidden" value="3" name="stores_id[3]">
谁能告诉我我做错了什么?
答案 0 :(得分:0)
看起来你将第二个参数1深度嵌套太远 -
$stores_id[$stores_id[$i]['stores_id']]
因此,在$i == 0
时,您将获得$stores_id[1]
2
,而不是$stores_id[0]
1
。当你到达$i == 2
时,你的$stores_id[3]
不在数组中。
所以要么删除外部数组 -
htmlspecialchars(stripslashes($stores_id[$i]['stores_id'])
或从内部数组返回值
中减去1
htmlspecialchars(stripslashes($stores_id[$stores_id[$i]['stores_id']-1])