2015-06-09 26 views
-1

我有一個數組,其中我有檢查框。與複選框打印陣列,希望值

複選框的每個類別包含4個選項,你可以選擇你想盡可能多的。我不知道如何獲得沒有序列化的價值。有誰能夠幫助我?

我的陣列看起來像這樣連載:

a:4:{i:0;s:1:"5";i:1;s:1:"6";i:2;s:1:"7";i:3;s:1:"8";} 

所以我只希望「」標記之間的值,我怎樣才能得到呢?

+0

爲什麼不使用'unserialize'? –

回答

1

您應該使用unserialize

如果沒有,那麼試試這個:

$str = 'a:4:{i:0;s:1:"5";i:1;s:1:"6";i:2;s:1:"7";i:3;s:1:"8";}'; 
preg_match_all( '/"(\d+)"/', $str, $matches); 

print_r($matches[1]); 
+0

感謝您的回答。可悲的是,當我這樣做: $ sammensat =「」.print_r($ matches [1])。「」; 它只給我發送數字1 –

+0

'$ matches [1]'是一個數組,你試圖將它分配給一個字符串,所以它不起作用。在將其分配給一個字符串之前,可以使用'implode'或者獲取數組中的所有值。 –

+0

我不認爲我得到了這一切。 $ str ='a:4:{i:0; s:1:「5」; i:1; s:1:「6」; i:2; s:1:「7」; i:3 ; S:1: 「8」;}'; preg_match_all('/「(\ d +)」/',$ str,$ matches); $ sep = implode(「,」,$ matches); $ string =「」。$ sep。「」; 因爲它返回數組,數組 –

0

你可以用反序列化嘗試()

$org=unserialize($array) 
var_export()