1. 云栖社区>
  2. PHP教程>
  3. 正文

php实现根据字符串生成对应数组的方法

作者:用户 来源:互联网 时间:2017-12-01 15:15:17

字符串

php实现根据字符串生成对应数组的方法 - 摘要: 本文讲的是php实现根据字符串生成对应数组的方法,本文实例讲述了php实现根据字符串生成对应数组的方法,是比较实用的技巧。分享给大家供大家参考。具体方法如下:先看看如下示例:<?php $config = array( 'project|page|index' => 'con

本文实例讲述了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程序设计的学习有所帮助。

以上是云栖社区小编为您精心准备的的内容,在云栖社区的博客、问答、公众号、人物、课程等栏目也有的相关内容,欢迎继续使用右上角搜索按钮进行搜索字符串 ,以便于您获取更多的相关知识。