下午好。
我正在尝试创建一个数组列表,其中一个键值为($ _REQUEST ['qty#']),其中“#”将是数组中项目的当前数字(因为它属于收集此信息的表单中的字段。)
例如:
$itemdetails = array(
array(
'qty' => ($_REQUEST['qty1']),
'price' => 0.70,
'pn' => 'TV-1000',
array(
'qty' => ($_REQUEST['qty2']),
'price' => 0.99,
'pn' => 'TV-5000'));
有没有办法让我自动确定($ _REQUEST ['qty'])中的数字而无需手动输入数字?
只是想知道。我的下一个猜测是将它全部输入数据库并从那里拉出来。
提前致谢了。
答案 0 :(得分:0)
你需要循环......
$itemdetails = array(
array(
'price' => 0.70,
'pn' => 'TV-1000'
),
array(
'price' => 0.99,
'pn' => 'TV-5000'
)
);
foreach ( $itemdetails as $k => &$item ) {
$item['qty'] = $k + 1;
}
答案 1 :(得分:0)
你应该做的是通过POST / GET传递一组数据。
要在输入中执行此操作,请为每个输入创建名称值= qty[]
。请注意这里的数组语法[]
。
PHP将使用该数组语法自动获取所有输入值,并在$ _POST / $ _ REQUEST中构建一个数组。
所以你可以像
一样访问你的数组var_dump($_POST['qty']);
var_dump($_REQUEST['qty']);
然而,仍然无法根据需要将其与价格/ pn相匹配。那么,让我们进一步采用数组语法,实际上将键值放入其中:
<input name="qty[0]" ... />
<input name="qty[1]" ... />
通过执行此操作,您将能够确切地知道哪个数组索引与哪个项匹配(假设您知道输入显示的顺序)。
将$_POST['qty'][0]
作为第一项,$_POST['qty'][1]
成为下一项,依此类推。
所以假设你还有像这样的数组中的价格/ pn:
$item_array = array(
0 => array('price' => 123, 'pn' = 'ABC'),
1 => array('price' => 456, 'pn' = 'XYZ'),
...
);
然后,您可以轻松地遍历输入数量并构建最终数组,如下所示:
$itemdetails = array();
foreach ($_REQUEST['qty'] as $key => $value) {
$itemdetails[$key] = $item_array[$key];
$itemdetails[$key]['qty'] = $value;
)
另请注意,如果您希望通过POST传递此数据,则最佳做法是使用$_POST
超全局而不是$_REQUEST
超全局。