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 相关文章推荐
Views rows style模板重写代码
May 16 PHP
PHP下使用CURL方式POST数据至API接口的代码
Feb 14 PHP
DOM XPATH获取img src值的query
Sep 23 PHP
关于PHP的curl开启问题探讨
Apr 08 PHP
yii框架配置默认controller和action示例
Apr 30 PHP
PHP中的日期加减方法示例
Aug 21 PHP
Destoon实现多表查询示例
Aug 21 PHP
php从给定url获取文件扩展名的方法
Mar 14 PHP
PHP网络操作函数汇总
May 18 PHP
PHP Opcache安装和配置方法介绍
May 28 PHP
PHP MSSQL 分页实例
Apr 13 PHP
laravel框架使用阿里云短信发送消息操作示例
Feb 15 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 中的面向对象编程:通向大型 PHP 工程的办法
2006/12/03 PHP
浅谈php和js中json的编码和解码
2016/10/24 PHP
PHP实现图片防盗链破解操作示例【解决图片防盗链问题/反向代理】
2020/05/29 PHP
3款实用的在线JS代码工具(国外)
2012/03/15 Javascript
js与运算符和或运算符的妙用
2014/02/14 Javascript
快速掌握WordPress中加载JavaScript脚本的方法
2015/12/17 Javascript
js和jq使用submit方法无法提交表单的快速解决方法
2016/05/17 Javascript
js操作XML文件的实现方法兼容IE与FireFox
2016/06/25 Javascript
微信小程序开发之选项卡(窗口底部TabBar)页面切换
2017/04/12 Javascript
JS 中document.write()的用法和清空的原因浅析
2017/12/04 Javascript
利用vue开发一个所谓的数独方法实例
2017/12/21 Javascript
详解mpvue小程序中怎么引入iconfont字体图标
2018/10/01 Javascript
详解微信小程序中组件通讯
2018/10/30 Javascript
vue.js自定义组件directives的实例代码
2018/11/09 Javascript
优化Vue项目编译文件大小的方法步骤
2019/05/27 Javascript
Python做文本按行去重的实现方法
2016/10/19 Python
django轻松使用富文本编辑器CKEditor的方法
2017/03/30 Python
python画出三角形外接圆和内切圆的方法
2018/01/25 Python
Python爬虫实现简单的爬取有道翻译功能示例
2018/07/13 Python
Python数据可视化库seaborn的使用总结
2019/01/15 Python
Python3.0 实现决策树算法的流程
2019/08/08 Python
python字符串常用方法及文件简单读写的操作方法
2020/03/04 Python
django使用channels实现通信的示例
2020/10/19 Python
优衣库澳大利亚官网:UNIQLO澳大利亚
2017/01/18 全球购物
发现世界上最好的珠宝设计师:JewelStreet
2017/12/17 全球购物
上班睡觉检讨书
2014/01/09 职场文书
秋季运动会广播稿
2014/02/22 职场文书
汽车维修专业自荐书
2014/05/26 职场文书
五好关工委申报材料
2014/05/31 职场文书
四查四看整改措施
2014/09/19 职场文书
大学生实训报告总结
2014/11/05 职场文书
2014年银行柜员工作总结
2014/11/12 职场文书
小学生学习保证书
2015/02/26 职场文书
2016年清明节寄语
2015/12/04 职场文书
学生安全责任协议书
2016/03/22 职场文书
Python进行区间取值案例讲解
2021/08/02 Python