下面本文章總結(jié)了三種把數(shù)組轉(zhuǎn)換成字符串然后寫入到數(shù)據(jù)庫中,一是直接利用implode函數(shù),另外就使用serialize與eval函數(shù)進(jìn)行轉(zhuǎn)換,下面來一起看看吧.
最簡(jiǎn)單的辦法,轉(zhuǎn)換implode,代碼如下:
數(shù)組->字符:$txt=implode("?",arr[]);
字符->數(shù)組:$arr[]=explode("?",txt);
使用php的serialize函數(shù),例子代碼如下:
- $data = array('上海', '北京', '武漢');
- $data = serialize($data);
- echo $data;
如何再將從數(shù)據(jù)庫中取出的數(shù)組字符串,轉(zhuǎn)換成數(shù)組呢?用unserialize函數(shù),代碼如下:
- $data = unserialize($data);
- echo $data;
當(dāng)然這樣我們還可以直接寫入到文件中,serialize和反序列unserialize來實(shí)現(xiàn),代碼如下:
- <?php
- $file="./data/file.cache";
- $array = array("count" => "3000",
- "num" =>"300");
- //緩存
- file_put_contents($file,serialize($array));//寫入緩存
- $cacheArray = unserialize(file_get_contents($file));
- print_r($cacheArray);
- ?>
例子,使用期php的eval函數(shù),string2array,array2string PHP數(shù)組轉(zhuǎn)字符串寫入數(shù)據(jù)庫,字符串?dāng)?shù)組轉(zhuǎn)可執(zhí)行,代碼如下:
- /**
- * 將字符串轉(zhuǎn)換為數(shù)組
- *
- * @param string $data 字符串
- * @return array 返回?cái)?shù)組格式,如果,data為空,則返回空數(shù)組
- */
- function string2array($data) {
- if($data == '') return array();
- @eval("$array = $data;");
- return $array;
- }
- /**
- * 將數(shù)組轉(zhuǎn)換為字符串
- *
- * @param array $data 數(shù)組
- * @param bool $isformdata 如果為0,則不使用new_stripslashes處理,可選參數(shù),默認(rèn)為1
- * @return string 返回字符串,如果,data為空,則返回空
- */
- function array2string($data, $isformdata = 1) {
- if($data == '') return '';
- if($isformdata) $data = new_stripslashes($data);
- return addslashes(var_export($data, TRUE));
- }
新聞熱點(diǎn)
疑難解答