程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
 程式師世界 >> 編程語言 >> 網頁編程 >> PHP編程 >> 關於PHP編程 >> php實現根據字符串生成對應數組的方法,php字符串對應數組

php實現根據字符串生成對應數組的方法,php字符串對應數組

編輯:關於PHP編程

php實現根據字符串生成對應數組的方法,php字符串對應數組


本文實例講述了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怎從數組中提取出包含某一字符串的數組的值

$map = array('aa' => '3,4,5,6;',
'bb' => '3,4,6,7;',
'cc' => '5,8,1,3;',
'dd' => '1,5,7,9;'
);
foreach ($map as $k =>$v) {
if (strpos($v, '3,4') !== false) {
echo "'$k' => '$v'<br />";
}
}
 

php中通過字符串創建數組

先要把字符串處理一下,成為php定義數組的形式,再用eval執行:

$str="
Array
(
[15] => Array
(
[id] => 2304
[fromtype] => item
)
[16] => Array
(
[id] => 2313
[fromtype] => item
)
[17] => Array
(
[id] => 4265
[fromtype] => item
)
)";

$str=preg_replace('/\[([a-z]+)\]\s*=>\s*([0-9a-z]+)/',"'\$1'=>'\$2',",$str);
$p=array('Array','[',']',' )');
$to=array('array',"'","'",'),');
$str=str_replace($p,$to,$str);
//echo $str;

eval("\$arr = ".$str.'; ');
print_r($arr[15]);
 

  1. 上一頁:
  2. 下一頁:
Copyright © 程式師世界 All Rights Reserved