2010-12-15 97 views
0

via print_r en php à partir jquery.serilizeArray()php divisé par tableau [nom] en groupes pour enregistrer en sortie MySQL

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 
) 

existe-t-possibilité de diviser un tableau en groupes en utilisant le _item_## -nombre? Je veux enregistrer des éléments dans ma première table MySQL, l'action est la fonction exécutable, que je reçois via $_POST[action] et [total] doivent être sauvegardés dans une deuxième table MySQL supplémentaire.

+0

hein ? s'il vous plaît réviser la question ... – Jakub

Répondre

1

D'après mon estimation au sens de la question;)

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

que vous, par exemple:

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

Avertissement: Je ne pas vraiment testé cette

+0

fonctionne fin, thx !! – hoerf

0

Vous pouvez boucler sur le tableau:

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

Ensuite $items contiennent tous les éléments qui ont _item_ dans la clé et $array le reste.

Mais plus facile serait de sauver total premier et enlever action, mysql et total du tableau. Donc, inverser les deux opérations.