当前位置:首页 > PHP教程 > php数组 > 列表

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

发布:smiling 来源: PHP粉丝网  添加日期:2021-04-13 21:45:57 浏览: 评论:0 

这篇文章主要介绍了php实现根据字符串生成对应数组的方法,包含了数组操作的技巧及eval函数的用法,需要的朋友可以参考下

本文实例讲述了php实现根据字符串生成对应数组的方法,是比较实用的技巧。分享给大家供大家参考。具体方法如下:

先看看如下示例:

  1. <?php  
  2. $config = array(  
  3.  'project|page|index' => 'content',  
  4.  'project|page|nav' => array(  
  5.  array(  
  6.  'image' => '1.jpg',  
  7.  'name' => 'home' 
  8.  ),  
  9.  array(  
  10.  'image' => '2.jpg',  
  11.  'name' => 'about' 
  12.  )  
  13.  ),  
  14.  'project|page|open' => true  
  15. );  
  16. ?> 

根据$config生成以下数组:

  1. <?php  
  2. $result = array(  
  3.  'project' => array(  
  4.  'page' => array(  
  5.  'index' => 'content',  
  6.  'nav' => array(  
  7.   array(  
  8.   'image' => '1.jpg',  
  9.   'name' => 'home' 
  10.   ),  
  11.   array(  
  12.   'image' => '2.jpg',  
  13.   'name' => 'about' 
  14.   )  
  15.  ),  
  16.  'open' => true  
  17.  )  
  18.  )  
  19. );  
  20. ?>  

方法:使用eval实现:

  1. <?php  
  2. $config = array(  
  3.  'project|page|index' => 'content',  
  4.  'project|page|nav' => array(  
  5.  array(  
  6.  'image' => '1.jpg',  
  7.  'name' => 'home' 
  8.  ),  
  9.  array(  
  10.  'image' => '2.jpg',  
  11.  'name' => 'about' 
  12.  )  
  13.  ),  
  14.  'project|page|open' => true  
  15. );  
  16.    
  17. $result = array();  
  18. foreach($config as $key=>$val){  
  19.    
  20.  $tmp = '';  
  21.  $keys = explode('|'$key);  
  22.    
  23.  for($i=0,$len=count($keys); $i<$len$i++){  
  24.  $tmp .= "['".$keys[$i]."']";  
  25.  }  
  26.    
  27.  if(is_array($val)){  
  28.  eval('$result'.$tmp.'='.var_export($val,true).';');  
  29.  }elseif(is_string($val)){  
  30.  eval('$result'.$tmp.'='.$val.';');  
  31.  }else{  
  32.  eval('$result'.$tmp.'=$val;');  
  33.  } //www.phpfensi.com 
  34.    
  35. }  
  36.    
  37. print_r($result);  
  38.    
  39. ?>  

输出结果:

  1. Array 
  2. [project] => Array 
  3. [ page ] => Array 
  4. [index] => content 
  5. [nav] => Array 
  6. [0] => Array 
  7. [image] => 1.jpg 
  8. [name] => home 
  9. [1] => Array 
  10. [image] => 2.jpg 
  11. [name] => about 
  12. [open] => 1 

希望本文所述对大家PHP程序设计的学习有所帮助。

Tags: php字符串生成数组

分享到: