php实现根据字符串生成对应数组的方法


Posted in PHP onSeptember 22, 2014

本文实例讲述了php实现根据字符串生成对应数组的方法,是比较实用的技巧。分享给大家供大家参考。具体方法如下:

先看看如下示例:

<?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 
 ) 
 ) 
); 
?>

方法:使用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
)
)
)

希望本文所述对大家PHP程序设计的学习有所帮助。

PHP 相关文章推荐
给apache2.2加上mod_encoding模块後 php5.2.0 处理url出现bug
Apr 12 PHP
php数组函数序列之next() - 移动数组内部指针到下一个元素的位置,并返回该元素值
Oct 31 PHP
php中使用session_set_save_handler()函数把session保存到MySQL数据库实例
Nov 06 PHP
thinkphp特殊标签用法概述
Nov 24 PHP
PHP中foreach()用法汇总
Jul 02 PHP
codeigniter实现get分页的方法
Jul 10 PHP
PHP如何实现Unicode和Utf-8编码相互转换
Jul 29 PHP
详解PHP中的mb_detect_encoding函数使用方法
Aug 18 PHP
PHP实现的曲线统计图表示例
Nov 10 PHP
php 截取GBK文档某个位置开始的n个字符方法
Mar 08 PHP
微信公众平台开发教程①获取用户Openid及个人信息图文详解
Apr 10 PHP
php设计模式之单例模式用法经典示例分析
Sep 20 PHP
PHP中auto_prepend_file与auto_append_file用法实例分析
Sep 22 #PHP
php中Y2K38的漏洞解决方法实例分析
Sep 22 #PHP
php中strstr、strrchr、substr、stristr四个函数的区别总结
Sep 22 #PHP
PHP中常用的输出函数总结
Sep 22 #PHP
C#静态方法与非静态方法实例分析
Sep 22 #PHP
php操作csv文件代码实例汇总
Sep 22 #PHP
PHP提示Cannot modify header information - headers already sent by解决方法
Sep 22 #PHP
You might like
利用PHP访问带有密码的Redis方法示例
2017/02/09 PHP
Jquery Ajax.ashx 高效分页实现代码
2009/10/20 Javascript
基于jquery的Repeater实现代码
2010/07/17 Javascript
基于jQuery的倒计时实现代码
2012/05/30 Javascript
javascript ready和load事件的区别示例介绍
2013/08/30 Javascript
js图片向右一张张滚动效果实例代码
2013/11/23 Javascript
jquery实现全选和全不选功能效果的实现代码【推荐】
2016/05/05 Javascript
简单实现js间歇或无缝滚动效果
2016/06/29 Javascript
jQuery中的AjaxSubmit使用讲解
2016/09/25 Javascript
jquery实现(textarea)placeholder自动换行
2016/12/22 Javascript
xmlplus组件设计系列之图标(ICON)(1)
2017/05/05 Javascript
vue bus全局事件中心简单Demo详解
2018/02/26 Javascript
JavaScript面向对象的程序设计(犯迷糊的小羊)
2018/05/27 Javascript
LayUI表格批量删除方法
2018/08/15 Javascript
Vue 组件注册实例详解
2019/02/23 Javascript
vue中axios实现数据交互与跨域问题
2019/05/12 Javascript
vue 解决异步数据更新问题
2019/10/29 Javascript
Vue自动构建发布脚本的方法示例
2020/07/24 Javascript
python抓取某汽车网数据解析html存入excel示例
2013/12/04 Python
在pytorch中对非叶节点的变量计算梯度实例
2020/01/10 Python
波兰最大的儿童服装连锁店之一:5.10.15.
2018/02/11 全球购物
新闻记者实习自我鉴定
2013/09/19 职场文书
机械专业毕业生推荐信范文
2013/11/25 职场文书
入党积极分子自我鉴定
2014/02/18 职场文书
《云雀的心愿》教学反思
2014/02/25 职场文书
服务承诺书范文
2014/05/19 职场文书
企业安全标语
2014/06/07 职场文书
无私奉献演讲稿
2014/09/04 职场文书
2015年超市工作总结
2015/04/09 职场文书
离婚纠纷代理词
2015/05/23 职场文书
2016年4月份红领巾广播稿
2015/12/21 职场文书
2016预备党员培训心得体会
2016/01/08 职场文书
导游词之上海东方明珠塔
2019/09/25 职场文书
golang DNS服务器的简单实现操作
2021/04/30 Golang
使用jpa之动态插入与修改(重写save)
2021/11/23 Java/Android
CSS使用伪类控制边框长度的方法
2022/01/18 HTML / CSS