2013-04-05 45 views
1

下午好。如何确定当前的php数组编号

我试图做一个数组列表的关键值之一是($ _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 [“数量”])来确定的数目,而无需手动的数字输入?

只是想知道。我的下一个猜测是将其全部输入到数据库中并从那里拉出来。

非常感谢你。

+2

你说目前的物品编号是来自某种形式或某物。有什么地方可以访问真实的#吗?或者它每次都会一直是一个特定的数字范围?这里需要更多的上下文。 – 2013-04-05 18:02:41

+0

为什么不使用计数器或用一个名为getCurrent或类似函数编写一个特殊的类,并使用它来获取当前元素? – Touch 2013-04-05 18:04:39

回答

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; 
} 
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