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&amp;mysql(三)
Oct 09 PHP
PHP form 表单传参明细研究
Jul 17 PHP
PHP5中使用DOM控制XML实现代码
May 07 PHP
PHP序列号生成函数和字符串替换函数代码
Jun 07 PHP
解析dedeCMS验证码的实现代码
Jun 07 PHP
php curl获取网页内容(IPV6下超时)的解决办法
Jul 16 PHP
windows下配置apache+php+mysql时出现问题的处理方法
Jun 20 PHP
PHP文件缓存内容保存格式实例分析
Aug 20 PHP
php绘制一个矩形的方法
Jan 24 PHP
smarty简单应用实例
Nov 03 PHP
PHP使用内置函数生成图片的方法详解
May 09 PHP
多个Laravel项目如何共用migrations详解
Sep 25 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开发中四种查询返回结果分析
2011/01/02 PHP
PHP通用检测函数集合
2011/02/08 PHP
PHP和Mysqlweb应用开发核心技术 第1部分 Php基础-1 开始了解php
2011/07/03 PHP
QQ登录 PHP OAuth示例代码
2011/07/20 PHP
PHP笔记之:基于面向对象设计的详解
2013/05/14 PHP
php引用返回与取消引用的详解
2013/06/08 PHP
php读取纯真ip数据库使用示例
2014/01/26 PHP
用 Composer构建自己的 PHP 框架之使用 ORM
2014/10/30 PHP
Zend Framework教程之分发器Zend_Controller_Dispatcher用法详解
2016/03/07 PHP
CI框架的安全性分析
2016/05/18 PHP
实现JavaScript中继承的三种方式
2009/10/16 Javascript
IE6背景图片不缓存问题解决方案及图片使用策略多个方法小结
2012/05/14 Javascript
jQuery之选择组件的深入解析
2013/06/19 Javascript
js获取电脑分辨率的思路及操作
2013/11/22 Javascript
关于JavaScript的单双引号嵌套问题
2017/08/20 Javascript
js封装成插件_Canvas统计图插件编写实例
2017/09/12 Javascript
详细介绍RxJS在Angular中的应用
2017/09/23 Javascript
详解Vue 全局引入bass.scss 处理方案
2018/03/26 Javascript
js实现移动端tab切换时下划线滑动效果
2019/09/08 Javascript
vue+elementui通用弹窗的实现(新增+编辑)
2021/01/07 Vue.js
vscode自定义vue模板的实现
2021/01/27 Vue.js
python安装numpy&amp;安装matplotlib&amp; scipy的教程
2017/11/02 Python
利用python和百度地图API实现数据地图标注的方法
2019/05/13 Python
浅谈python多进程共享变量Value的使用tips
2019/07/16 Python
Python PIL图片添加字体的例子
2019/08/22 Python
Pytorch DataLoader 变长数据处理方式
2020/01/08 Python
TensorFlow2.1.0最新版本安装详细教程
2020/04/08 Python
windows10 pycharm下安装pyltp库和加载模型实现语义角色标注的示例代码
2020/05/07 Python
python能自学吗
2020/06/18 Python
Python在字符串中处理html和xml的方法
2020/07/31 Python
Python批量获取并保存手机号归属地和运营商的示例
2020/10/09 Python
电气工程及其自动化学生实习自我鉴定
2013/09/19 职场文书
班长演讲稿范文
2014/04/24 职场文书
证劵公司反洗钱宣传活动总结
2015/05/08 职场文书
2016圣诞节贺卡寄语
2015/12/07 职场文书
Elasticsearch 数据类型及管理
2022/04/19 Python