2013-02-15 90 views
0

我選擇複選框,並希望保存在當前頁碼爲$_GET['page_no']的關聯數組中,因爲它是索引,但只有1個值進入,爲什麼沒有其他值?如何爲每個創建一個關聯數組?

$pageno = $_GET['page_no']; //Say page no is 1 
$_SESSION['selected_vals'] = array(); 
foreach($_POST['record_num'] as $throw_rec_nums) { 
    $_SESSION['selected_vals'][$pageno] = $throw_rec_nums; 
} 

我希望

$_SESSOION['selected_val'] (
    [1] => 24 
    [1] => 46 
    [1] => 56 
) 

但我只得到24即使3個複選框被選中

注意什麼:$ _GET [ 'page_no']返回爲數組

+0

你能否澄清「但只有1值變爲」部分? – mkaatman 2013-02-15 17:07:17

+0

請發佈您複選框的HTML。 – FabianoLothor 2013-02-15 17:07:29

+0

@FabianoLothor如果我正在使用'$ _GET ['record_num']'很顯然我正在使用'' – 2013-02-15 17:10:10

回答

3

$pageno不遞增。爲了將多個值添加到數組中,它需要在循環中遞增。

一種解決方案是這樣的:

$_SESSION['selected_vals'][$pageno][] = $throw_rec_nums; 

這樣,所有的記錄號將被保存到在指定頁碼的陣列。

+0

好的,但創建一個數組內的數組,並使用遞增索引,任何想法,我可以保持1所有?謝謝+1 – 2013-02-15 17:12:51

+0

@CreepyFrog:數組每個鍵只能有*一個*值。你想要的是不可能的。 – 2013-02-15 17:18:56

+0

好的,謝謝:) – 2013-02-15 17:29:02

0

您不能將數組用作數組索引。你將不得不遍歷$您做生意太,例如旁邊():

$array[current($pageno)] = ...; 
next($pageno); 

請注意,如果您確保室溫是$您做生意實際上是一個數組,包含足夠的元素,這隻會工作。

+0

我正在使用foreach,所以返回的值不是數組:) – 2013-02-15 17:19:24

+0

但是,你不會foreach over $ pageno,並說這是一個數組。那麼,現在我看到你的期望了,這是不可能的。鑰匙是獨特的。 – 2013-02-15 17:52:05

2

只有1個值會進入,因爲您正在每個foreach循環中替換$ _SESSION ['selected_vals'] [$ pageno]值。

嘗試創建一個計數器來索引它

它是一個選項

$_SESSION['selected_vals'] = array(); 
$_SESSION['selected_vals'][$pageno] = array(); 
foreach($_POST['record_num'] as $throw_rec_nums) { 
    $_SESSION['selected_vals'][$pageno][] = $throw_rec_nums; 
} 
+2

不可能用1索引所有...(想想我)如果所有索引都在同一個關鍵字中,如何訪問某個值?像你期望的那樣,值可能會返回$ _SESSION ['selected_val'] [1]? – Heberfa 2013-02-15 17:19:10

+0

好的,謝謝:) – 2013-02-15 17:28:37

相關問題