Welcome 微信登录

首页 / 网页编程 / PHP / php中如何根据字符串生成对应数组方法

php中如何根据字符串生成对应数组方法2014-10-29 csdn博客 傲雪星枫例如:

<?php$config = array("project|page|index" => "content","project|page|nav" => array(array("image" => "1.jpg","name" => "home"),array("image" => "2.jpg","name" => "about")),"project|page|open" => true);?>
根据$config生成以下数组

<?php$result = array("project" => array("page" => array("index" => "content","nav" => array(array("image" => "1.jpg","name" => "home"),array("image" => "2.jpg","name" => "about")),"open" => true)));?>
本栏目更多精彩内容:http://www.bianceng.cn/webkf/PHP/

方法:使用eval实现

<?php$config = array("project|page|index" => "content","project|page|nav" => array(array("image" => "1.jpg","name" => "home"),array("image" => "2.jpg","name" => "about")),"project|page|open" => true);$result = array();foreach($config as $key=>$val){$tmp = "";$keys = explode("|", $key);for($i=0,$len=count($keys); $i<$len; $i++){$tmp .= "["".$keys[$i].""]";}if(is_array($val)){eval("$result".$tmp."=".var_export($val,true).";");}elseif(is_string($val)){eval("$result".$tmp."=".$val.";");}else{eval("$result".$tmp."=$val;");}}print_r($result);?>
输出结果:

Array([project] => Array([page] => Array([index] => content[nav] => Array([0] => Array([image] => 1.jpg[name] => home)[1] => Array([image] => 2.jpg[name] => about))[open] => 1)))