2010-12-15 65 views
0

输出保存在PHP从jquery.serilizeArray()PHP分裂阵列分成若干小组,在MySQL经由的print_r

Array ( 
    [pnr_item_2] => 2 
    [pkt_item_2] => Hosting L 
    [desc_item_2] => Domain + Hosting 
    [qty_item_2] => 9 
    [price_item_2] => 12.4 
    [pnr_item_1] => 1 
    [pkt_item_1] => HostingXXL 
    [desc_item_1] => 20GB, 1x.de 
    [qty_item_1] => 2 
    [price_item_1] => 15.5 
    [pnr_item_3] => 3 
    [pkt_item_3] => Domain 
    [desc_item_3] => Standarddomain 
    [qty_item_3] => 6 
    [price_item_3] => 5 
    [pnr_item_4] => 3 
    [pkt_item_4] => Domain 
    [desc_item_4] => Standarddomain 
    [qty_item_4] => 7 
    [price_item_4] => 5 
    [action] => save 
    [mysql] => update 
    [total] => 351.1 
) 

确实存在的可能性通过使用_item_##分裂成组的数组-数? 我想将项目保存到我的第一个MySQL表中,action是executet函数,我通过$_POST[action][total]得到的函数必须保存在额外的(第二个)MySQL表中。

+0

呵呵?请修改问题... – Jakub 2010-12-15 14:44:25

回答

1

根据我在这个问题的意思猜测;)

//$yourArr = array(all,your,input); 

$action = $yourArr['action']; 
$mysql = $yourArr['mysql']; 
$total = $yourArr['total']; 
unset($yourArr['action'] , $yourArr['mysql'] , $yourArr['total']); 

foreach ($yourArr as $k => $v) { 
    list($type,$num) = explode('_item_',$k); 
    $items[$num][$type] = $v; 
} 

比你有,例如:

$items = array(
    [2]['pnr'] => 2, 
    [2]['pkt'] => 'Hosting L', 
    [2][['desc_item'] => 'Domain + Hosting' 
    ... 
); 

免责声明:我没有实际测试此

+0

作品fin,thx !! – hoerf 2010-12-17 20:43:26

0

您可以循环在阵列上:

$items = array(); 
foreach($array as $key=>$value) { 
    if(stripos($key, '_item_' !== false)) { 
     $items[$key] = $value; 
     unset($array[$key]); 
    } 
} 

然后$items包含有在关键_item_$array其余的所有元素。

但更容易的是先保存total并从阵列中删除action,mysqltotal。所以只是颠倒这两个操作。