2013-04-09 116 views
0

我想弄清楚如何從複選框數組中獲取值。複選框陣列的var_dump如下所示:PHP獲取值複選框陣列

array (size=50) 
0 => string '104702|0' (length=8) 
1 => string '52278|1' (length=7) 
2 => string '69891|1' (length=7) 
3 => string '153335|1' (length=8) 
4 => string '131140|1' (length=8) 
. . . 

我在每個數組值發送兩個不同的ID,通過管道分離,並希望各部分分配給不同的變量,$變量1,$變量2,所以我可以在數據庫查詢中使用它們。我怎樣才能做到這一點?

感謝您的幫助。

編輯:雖然我已經接受了下面的答案,這裏是完整的答案我一直在尋找:

要獲得值超出上述陣列的,所以我可以在我的數據庫查詢中使用他們,我做了以下先打破他們分開:

foreach ($input as $key => $value) { 
    $this->combinedIds[] = explode('|', $value); 
} 

然後,得到的值成獨立的變量,我做了以下內容:在陣列中的

foreach ($this->combinedIds as $key => $value) { 
    $firstId = $value[0]; 
    $secondId = $value[1] 

    // do something with the values ... 
} 
+1

考慮到你在這個問題上放了一個'explode'標籤,我猜你至少對如何解決這個問題有一些想法。你能否展示你迄今爲止所做的工作,並明確指出你有問題的地方? – 2013-04-09 16:53:58

+0

不,這完全沒有幫助。 – user1108996 2013-04-09 18:06:07

回答

0

使用foreach循環nd用管道符號分解每個值。事情是這樣的:

foreach ($arr as $val) 
{ 
    $newData = explode("|", $val); 
} 
+0

謝謝!這是我最初做的,但不知道如何獲取數值。 – user1108996 2013-04-09 17:39:36

+0

太棒了...乾杯和快樂編碼:) – 2013-04-09 17:40:13

0

不同的變種(使用匿名函數)會是這樣的:

$values = array_map(function ($input) { $tmp = explode("|", $input); return ["id1" => current($tmp), "id2" => end($tmp)]; }, $array);

這是爲PHP 5.4+寫的。如果你需要一個與PHP 5.3兼容的版本,只需將括號替換爲相應的array(...)即可。

+0

謝謝。這很有趣 - 我希望我能理解它。我可以在類中的函數內使用匿名函數嗎? – user1108996 2013-04-09 17:15:02

+1

就我對匿名函數的理解而言,是的,但它取決於你想使用它的位置。我使用它作爲'array_map()'函數的參數,但是你可以在其他地方定義它。你可以像'$ a = function($ input){return $ input + 6; }'並執行它就像'$ c = $ a(5)'得到'11'結果:P – 2013-04-09 17:44:03