我有一個數組,其中我有檢查框。與複選框打印陣列,希望值
複選框的每個類別包含4個選項,你可以選擇你想盡可能多的。我不知道如何獲得沒有序列化的價值。有誰能夠幫助我?
我的陣列看起來像這樣連載:
a:4:{i:0;s:1:"5";i:1;s:1:"6";i:2;s:1:"7";i:3;s:1:"8";}
所以我只希望「」標記之間的值,我怎樣才能得到呢?
我有一個數組,其中我有檢查框。與複選框打印陣列,希望值
複選框的每個類別包含4個選項,你可以選擇你想盡可能多的。我不知道如何獲得沒有序列化的價值。有誰能夠幫助我?
我的陣列看起來像這樣連載:
a:4:{i:0;s:1:"5";i:1;s:1:"6";i:2;s:1:"7";i:3;s:1:"8";}
所以我只希望「」標記之間的值,我怎樣才能得到呢?
您應該使用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]);
感謝您的回答。可悲的是,當我這樣做: $ sammensat =「」.print_r($ matches [1])。「」; 它只給我發送數字1 –
'$ matches [1]'是一個數組,你試圖將它分配給一個字符串,所以它不起作用。在將其分配給一個字符串之前,可以使用'implode'或者獲取數組中的所有值。 –
我不認爲我得到了這一切。 $ 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。「」; 因爲它返回數組,數組 –
你可以用反序列化嘗試()
$org=unserialize($array)
var_export()
爲什麼不使用'unserialize'? –