php實現根據字串產生對應數組的方法,php字串對應數組_PHP教程

來源:互聯網
上載者:User

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'
";
}
}
 

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]);
 

http://www.bkjia.com/PHPjc/882911.htmlwww.bkjia.comtruehttp://www.bkjia.com/PHPjc/882911.htmlTechArticlephp實現根據字串產生對應數組的方法,php字串對應數組 本文執行個體講述了php實現根據字串產生對應數組的方法,是比較實用的技巧。分...

  • 聯繫我們

    該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

    如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

    A Free Trial That Lets You Build Big!

    Start building with 50+ products and up to 12 months usage for Elastic Compute Service

    • Sales Support

      1 on 1 presale consultation

    • After-Sales Support

      24/7 Technical Support 6 Free Tickets per Quarter Faster Response

    • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.