欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页  >  后端开发

如何通过php 根据字符串生成对应数组的方法

程序员文章站 2022-03-13 21:37:42
...
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 根据字符串生成对应数组的方法,更多相关内容请关注。

相关推荐:

关于JSON字符串key缺少双引号的解决方法 的讲解

如何通过curl 来获取 https的 请求方法

通过php 上传图片保存到数据库的实例讲解

以上就是如何通过php 根据字符串生成对应数组的方法的详细内容,更多请关注其它相关文章!

相关标签: php is_array