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 依据字符串生成相应数组方法 比如: <?php $config = array( 'project|page|index' => 'content', 'project|page| ...
- Python生成随机数组的方法小结
Python生成随机数组的方法小结 本文实例讲述了Python生成随机数组的方法.分享给大家供大家参考,具体如下: 研究排序问题的时候常常需要生成随机数组来验证自己排序算法的正确性和性能,今天把Pyt ...
- 伪数组(arguments及字符串)转数组的方法 贼简单
超简单的伪数组转数组的方法, 简单到令人发指! (这里伪数组使用arguments) 1.使用 Array.prototype.slice Array.prototype.slice.call(arg ...
- java代码中fastjson生成字符串和解析字符串的方法和javascript文件中字符串和json数组之间的转换方法
1.java代码中fastjson生成字符串和解析字符串的方法 List<TemplateFull> templateFulls = new ArrayList<TemplateFu ...
- PHP函数积累总结(Math函数、字符串函数、数组函数)
Math函数:10个较常用标红.abs — 绝对值acos — 反余弦acosh — 反双曲余弦asin — 反正弦asinh — 反双曲正弦atan2 — 两个参数的反正切atan — 反正切ata ...
- javascript---关于字符串和数组的方法
在学习javascript过程中,遇到过很多关于数组和字符串的一些操作.之前也总结了不少方法,可是一遇到自己用的时候,就忘了.不是忘了方法叫什么名,就是忘了方法的参数有什么,返回的是什么? 现在就再次 ...
- 记录个人数组、字符串自己常忘记的方法,以及ES常用处理方式
记录自己在工作中,时不时使用,每次都要去查一下的基础方法.以及ES6经常使用的方法 一.Array 1.concat 合并数组 2.shift 获取数组第一个元素 unshift 向数组首位添加一个元 ...
- (C/C++学习)15.C语言字符串和字符数组
说明:在C语言中字符串和字符数组有很多相似之处,却又有着一些不同.本文将针对其区别与联系,进行分析总结. 一.字符串 1.在C语言中,字符串是由双引号括起来的任意字符序列,如:"china& ...
- 【c++ Prime 学习笔记】第3章 字符串、向量和数组
string和vector是两类最重要的标准库类型 strng表示可变长的字符序列 vector存放某种给定类型对象的可变长序列. 3.1 命名空间的using声明 using namespace:: ...
随机推荐
- 【Linux网络编程】TCP网络编程中connect()、listen()和accept()三者之间的关系
[Linux网络编程]TCP网络编程中connect().listen()和accept()三者之间的关系 基于 TCP 的网络编程开发分为服务器端和客户端两部分,常见的核心步骤和流程如下: conn ...
- 分布式监控系统开发【day37】:表结构设计(二)
一.表结构关系图 二.表结构需求讨论 1.主机表(Host) 1.解决了什么问题? 1.如果我不想让它监控了,就有一个开关的东西给它禁掉2.主机存活状态检测间隔 2.代码 class Host(mod ...
- git秘钥生成
#修改git配置 vi .gitconfig #生成秘钥 ssh-keygen -t rsa -C "邮箱地址" #查看秘钥 cat id_rsa.pub
- H5取经之路——添加hover实现特定效果
一.鼠标指上后显示二维码,效果图如下: 鼠标未指上时: 鼠标指上后: 代码如下: .div1 .li2 .code_wexin{ width: 0px; height: 0px; position: ...
- Java(6)for循环
一.for循环的使用场合 1.1.while循环——先判断,再循环 while(1.条件表达式){ //2.循环操作 //3.更改循环条件表达式 } 1.2.do…while——先 ...
- 拖动DIV
链接:https://www.cnblogs.com/joyco773/p/6519668.html 移动端:div在手机页面上随意拖动 1 <!doctype html> 2 & ...
- Codeforces Round #501 (Div. 3) D. Walking Between Houses
题目链接 题意:给你三个数n,k,sn,k,sn,k,s,让你构造一个长度为k的数列,使得相邻两项差值的绝对值之和为sss, ∑i=1n∣a[i]−a[i−1]∣,a[0]=1\sum_{i=1}^n ...
- Djangol里面MVT的原理
MVT Django是一款python的web开发框架与MVC有所不同,属于MVT框架m表示model,负责与数据库交互v 表示view,是核心,负责接收请求.获取数据.返回结果t 表示templat ...
- POJ 1556 The Doors(线段相交+最短路)
题目: Description You are to find the length of the shortest path through a chamber containing obstruc ...
- 阿里云ECS试用配置
1.首先从阿里云找到ECS购买入口(目前在弹性入口的弹出框中).进入ECS购买界面后,选择免费试用. 此处省略试用申请过程. 2.然后再到云市场中购买一个免费的镜像服务.此处为Centos 64位系统 ...