php中通过字符串创建数组(不是序列号的数组)
[ 2012-05-30 00:31:30 | 作者: admin ]
p.s. 不能使用array函数转换下,不然字符串只是变成了第一个值。 平常对于数组的存储还是序列化最简单方便!!
有一个长得像数组的字符串$str,
有没有什么函数可以将这个字符串$str转化为数组结构?
标准答案:
先要把字符串处理一下,成为php定义数组的形式,再用eval执行:
参考:http://zhidao.baidu.com/question/395889080.html
有一个长得像数组的字符串$str,
$str="
Array
(
[15] => Array
(
[id] => 2304
[fromtype] => item
)
[16] => Array
(
[id] => 2313
[fromtype] => item
)
[17] => Array
(
[id] => 4265
[fromtype] => item
)
)"
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]);
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: http://blog.xg98.com/feed.asp?q=comment&id=1827
这篇日志没有评论。
此日志不可发表评论。