2016-09-16 17 views
1

我想添加阵列(数据来自URL)到一个会话阵列:加入数组到session数组在PHP

$nbA = array(); $nbE = array(); $nbS = array(); $nbAll = array(); 
for ($a = 1; $a <= $_GET['nbAdultes']; $a++) { $nbA[] .= "ADULTE"; } 
for ($e = 1; $e <= $_GET['nbEnfants']; $e++) { $nbE[] .= "ENFANT"; } 
for ($s = 1; $s <= $_GET['nbSeniors']; $s++) { $nbS[] .= "SENIOR"; } 
$nbAll = array_merge($nbA, $nbE, $nbS); 
$nbAllSession = array_merge($nbAll, $nbAll); 
$_SESSION['nbAllSession'] = $nbAllSession; 
print_r($nbAllSession); 
print_r($nbAll); 

届阵列一直只显示2 阵列

它应该是这样的:

1. Array ([0] => ADULTE [1] => ENFANT [2] => ENFANT) 

2. Array ([0] => ADULTE [1] => ADULTE [2] => ENFANT) 

最后的会话阵列:

Array ([0] => ADULTE [1] => ENFANT [2] => ENFANT [3] => ADULTE [4] => ADULTE [5] => ENFANT) 
+0

'$ _SESSION [ 'nbAllSession'] [] = $ nbAllSession;'变化这样和checck –

+0

同样的事情...... – Clementine

+0

为什么这样? '$ nbAllSession = array_merge($ nbAll,$ nbAll);' – CatalinB

回答

0
$cnt = 1; 

$_GET['nbAdultes'] = $cnt; 
$_GET['nbEnfants'] = $cnt; 
$_GET['nbSeniors'] = $cnt; 

$nbA = array(); 
$nbE = array(); 
$nbS = array(); 
$nbAll = array(); 


for ($a = 1; $a <= $_GET['nbAdultes']; $a++) { $nbA[] = "ADULTE"; } 
for ($e = 1; $e <= $_GET['nbEnfants']; $e++) { $nbE[] = "ENFANT"; } 
for ($s = 1; $s <= $_GET['nbSeniors']; $s++) { $nbS[] = "SENIOR"; } 


$nbAll = array_merge($nbA, $nbE, $nbS); 


$nbAllSession = array_merge($nbAll, $nbAll); 


$_SESSION['nbAllSession'] = $nbAllSession; 

echo "<pre>"; 
print_r($nbAllSession); 
print_r($nbAll); 


//$nbA[] .= "ADULTE"; is not ok because $nbA[] is not **STRING**. 
+0

你需要举一个正确的代码的例子。否则有人会来为你做,并挖掘任何认可。 – DevDonkey

+0

我已经写过,不要像“。”那样连接字符串之类的数组。 ($ a = 1; $ a <= $ _GET ['nbAdultes']; $ a ++){$ nbA [] =“ADULTE”; }' – CatalinB

+0

问题出在这里:'$ nbAllSession = array_merge($ nbAll,$ nbAll);' – Clementine