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 相关文章推荐
第六节--访问属性和方法
Nov 16 PHP
探讨各种PHP字符串函数的总结分析
Jun 05 PHP
wordpress自定义url参数实现路由功能的代码示例
Nov 28 PHP
javascript数组与php数组的地址传递及值传递用法实例
Jan 22 PHP
PHP防盗链的基本思想 防盗链的设置方法
Sep 25 PHP
[原创]php集成安装包wampserver修改密码后phpmyadmin无法登陆的解决方法
Nov 23 PHP
php+redis实现多台服务器内网存储session并读取示例
Jan 12 PHP
谈谈从phpinfo中能获取哪些值得注意的信息
Mar 28 PHP
php将html转为图片的实现方法
May 19 PHP
PHP实现求解最长公共子串问题的方法
Nov 17 PHP
浅谈laravel 5.6 安装 windows上使用composer的安装过程
Oct 18 PHP
Thinkphp5框架异常处理操作实例分析
Jun 03 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
杏林同学录(一)
2006/10/09 PHP
PHP常用技巧总结(附函数代码)
2012/02/04 PHP
php编写的简单页面跳转功能实现代码
2013/11/27 PHP
WordPress中登陆后关闭登陆页面及设置用户不可见栏目
2015/12/31 PHP
针对多用户实现头像上传功能PHP代码 适用于登陆页面制作
2016/08/17 PHP
PHP生成推广海报的方法分享
2018/04/22 PHP
PHP常用函数之base64图片上传功能详解
2019/10/21 PHP
对YUI扩展的Gird组件 Part-2
2007/03/10 Javascript
Js四则运算函数代码
2012/07/21 Javascript
javascript继承之为什么要继承
2012/11/10 Javascript
jquery text()方法取标签中的文本
2014/07/25 Javascript
功能强大的Bootstrap组件(结合js)
2016/08/03 Javascript
Vue.JS入门教程之列表渲染
2016/12/01 Javascript
vue实现简单实时汇率计算功能
2017/01/15 Javascript
JavaScript requestAnimationFrame动画详解
2017/09/14 Javascript
nodejs简单实现TCP服务器端和客户端的聊天功能示例
2018/01/04 NodeJs
详解微信图片防盗链“此图片来自微信公众平台 未经允许不得引用”的解决方案
2019/04/04 Javascript
js Array.slice的8种不同用法示例
2019/07/10 Javascript
seajs和requirejs模块化简单案例分析
2019/08/26 Javascript
python文件读写并使用mysql批量插入示例分享(python操作mysql)
2014/02/17 Python
Windows下搭建python开发环境详细步骤
2020/07/20 Python
Python实现的选择排序算法原理与用法实例分析
2017/11/22 Python
Python3编码问题 Unicode utf-8 bytes互转方法
2018/10/26 Python
Django框架模板的使用方法示例
2019/05/25 Python
matplotlib grid()设置网格线外观的实现
2021/02/22 Python
HTML5 UTF-8 中文乱码的解决方法
2013/11/18 HTML / CSS
StubHub美国:购买或出售您的门票
2019/07/09 全球购物
俄罗斯电动工具和设备购物网站:Vseinstrumenti.ru
2020/11/12 全球购物
一些关于MySql加速和优化的面试题
2014/01/30 面试题
机械专业应届生求职信
2013/12/12 职场文书
大学生收银员求职信分享
2014/01/02 职场文书
公司前台辞职报告
2014/01/19 职场文书
大跃进口号
2014/06/16 职场文书
靠谱的活动总结
2019/04/16 职场文书
关于Javascript闭包与应用的详解
2021/04/22 Javascript
Python数据类型最全知识总结
2021/05/31 Python