php中通过字符串创建数组(不是序列号的数组)

[ 2012-05-30 00:31:30 | 作者: admin ]
字号: | |
p.s. 不能使用array函数转换下,不然字符串只是变成了第一个值。 平常对于数组的存储还是序列化最简单方便!!


有一个长得像数组的字符串$str,
$str="
Array
(
         [15] => Array
                (
                     [id] => 2304
                     [fromtype] => item
                )
         [16] => Array
                (
                     [id] => 2313
                     [fromtype] => item
                )
         [17] => Array
                (
                     [id] => 4265
                     [fromtype] => item
                )
)"

有没有什么函数可以将这个字符串$str转化为数组结构?


标准答案:
先要把字符串处理一下,成为php定义数组的形式,再用eval执行:
$str="
Array
(
         [15] => Array
                (
                     [id] => 2304
                     [fromtype] => item
                )
         [16] => Array
                (
                     [id] => 2313
                     [fromtype] => item
                )
         [17] => Array
                (
                     [id] => 4265
                     [fromtype] => item
                )
)";

$str=preg_replace('/\[([a-z]+)\]\s*=>\s*([0-9a-z]+)/',"'\$1'=>'\$2',",$str);
$p=array('Array','[',']',' )');
$to=array('array',"'","'",'),');
$str=str_replace($p,$to,$str);
//echo $str;

eval("\$arr = ".$str.'; ');
print_r($arr[15]);



参考:http://zhidao.baidu.com/question/395889080.html
[最后修改由 admin, 于 2012-05-30 00:37:40]
评论Feed 评论Feed: http://blog.xg98.com/feed.asp?q=comment&id=1827

这篇日志没有评论。

此日志不可发表评论。