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 相关文章推荐
php语言流程控制中的主动与被动
Nov 05 PHP
YII路径的用法总结
Jul 09 PHP
php使用Cookie实现和用户会话的方法
Jan 21 PHP
基于JQuery+PHP编写砸金蛋中奖程序
Sep 08 PHP
功能强大的php分页函数
Jul 20 PHP
thinkPHP中验证码的简单实现方法
Dec 05 PHP
php实现文件管理与基础功能操作
Mar 21 PHP
PHP简单实现模拟登陆功能示例
Sep 15 PHP
针对PHP开发安全问题的相关总结
Mar 22 PHP
php和asp语法上的区别总结
May 12 PHP
laravel框架中间件简单使用方法示例
Jan 25 PHP
PHP7 整型处理机制修改
Mar 09 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入门之常量简介和系统常量
2014/05/12 PHP
php遍历目录方法小结
2015/03/10 PHP
php 的反射详解及示例代码
2016/08/25 PHP
详解php与ethereum客户端交互
2018/04/28 PHP
Django 标签筛选的实现代码(一对多、多对多)
2018/09/05 PHP
利用CSS、JavaScript及Ajax实现高效的图片预加载
2013/10/16 Javascript
js中的布尔运算符使用介绍
2013/11/20 Javascript
javascript跨域的4种方法和原理详解
2014/04/08 Javascript
node.js中Socket.IO的进阶使用技巧
2014/11/04 Javascript
node.js中的http.get方法使用说明
2014/12/14 Javascript
js支持键盘控制的左右切换立体式图片轮播效果代码分享
2015/08/26 Javascript
使用base64对图片的二进制进行编码并用ajax进行显示
2017/01/03 Javascript
浅谈$_FILES数组为空的原因
2017/02/16 Javascript
JavaScript中数组Array方法详解
2017/02/27 Javascript
关于使用js算总价的问题
2017/06/23 Javascript
详解JS数组Reduce()方法详解及高级技巧
2017/08/18 Javascript
详解JavaScript事件循环机制
2018/09/07 Javascript
JavaScript错误处理操作实例详解
2019/01/04 Javascript
vue学习笔记五:在vue项目里面使用引入公共方法详解
2019/04/04 Javascript
wx-charts 微信小程序图表插件的具体使用
2019/08/18 Javascript
JS实现灯泡开关特效
2020/03/30 Javascript
Vuex实现数据增加和删除功能
2019/11/11 Javascript
[01:00:35]2018DOTA2亚洲邀请赛3月30日B组 EffcetVSMineski
2018/03/31 DOTA
python实现自动登录人人网并采集信息的方法
2015/06/28 Python
对Python中9种生成新对象的方法总结
2018/05/23 Python
详解Python基础random模块随机数的生成
2019/03/23 Python
Python matplotlib绘制饼状图功能示例
2019/09/10 Python
Lancome兰蔻官方旗舰店:来自法国的世界知名美妆品牌
2018/06/14 全球购物
高考自主招生自荐信
2013/10/20 职场文书
井冈山红色之旅心得体会
2014/10/07 职场文书
检讨书怎么写
2015/05/07 职场文书
单位政审意见范文
2015/06/04 职场文书
婚礼上证婚人致辞
2015/07/28 职场文书
教你怎么用Python生成九宫格照片
2021/05/20 Python
Python使用DFA算法过滤内容敏感词
2022/04/22 Python
SQL Server中锁的用法
2022/05/20 SQL Server