如何透過php 根據字串產生對應數組的方法

jacklove
發布: 2023-03-31 08:28:01
原創
1848 人瀏覽過

php 根據字串產生對應陣列方法

#例如:

<?php
$config = array(
    &#39;project|page|index&#39; => &#39;content&#39;,
    &#39;project|page|nav&#39; => array(
            array(
                &#39;image&#39; => &#39;1.jpg&#39;,
                &#39;name&#39; => &#39;home&#39;
            ),
            array(
                &#39;image&#39; => &#39;2.jpg&#39;,
                &#39;name&#39; => &#39;about&#39;
            )
    ),
    &#39;project|page|open&#39; => true
);
?>
登入後複製


#根據$config產生以下陣列

<?php
$result = array(
    &#39;project&#39; => array(
        &#39;page&#39; => array(
            &#39;index&#39; => &#39;content&#39;,
            &#39;nav&#39; => array(
                    array(
                        &#39;image&#39; => &#39;1.jpg&#39;,
                        &#39;name&#39; => &#39;home&#39;
                    ),
                    array(
                        &#39;image&#39; => &#39;2.jpg&#39;,
                        &#39;name&#39; => &#39;about&#39;
                    )
            ),
            &#39;open&#39; => true
        )    
    )
);
?>
登入後複製


方法:使用eval實作

<?php
$config = array(
    &#39;project|page|index&#39; => &#39;content&#39;,
    &#39;project|page|nav&#39; => array(
            array(
                &#39;image&#39; => &#39;1.jpg&#39;,
                &#39;name&#39; => &#39;home&#39;
            ),
            array(
                &#39;image&#39; => &#39;2.jpg&#39;,
                &#39;name&#39; => &#39;about&#39;
            )
    ),
    &#39;project|page|open&#39; => true
);
$result = array();
foreach($config as $key=>$val){
    
    $tmp = &#39;&#39;;
    $keys = explode(&#39;|&#39;, $key);
    
    for($i=0,$len=count($keys); $i<$len; $i++){
        $tmp .= "[&#39;".$keys[$i]."&#39;]";
    }
    
    if(is_array($val)){
        eval(&#39;$result&#39;.$tmp.&#39;=&#39;.var_export($val,true).&#39;;&#39;);
    }elseif(is_string($val)){
        eval(&#39;$result&#39;.$tmp.&#39;=&#39;.$val.&#39;;&#39;);
    }else{
        eval(&#39;$result&#39;.$tmp.&#39;=$val;&#39;);
    }
}
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中文網。

相關推薦:

關於JSON字串key缺少雙引號的解決方法的講解

##如何透過curl 來取得https的請求方法

透過php 上傳圖片儲存到資料庫的實例講解

# #

以上是如何透過php 根據字串產生對應數組的方法的詳細內容。更多資訊請關注PHP中文網其他相關文章!

相關標籤:
來源:php.cn
本網站聲明
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn
熱門教學
更多>
最新下載
更多>
網站特效
網站源碼
網站素材
前端模板