`
zxbsearch
  • 浏览: 4453 次
  • 性别: Icon_minigender_1
  • 来自: 武汉
社区版块
存档分类
最新评论

数组动态键值

阅读更多

php获取数组的值,是这样的方式

$key = 'test';

$val = $arr[$key];

 

如果是多维深度数组结构,如何根据键获取数组的值?

 

step1

要构造出结构

step2

使用php特殊执行函数eval

 

项目代码示例:

$arr = array(
    'CITIZENSHIP' => '05',
    'ADDRESS' => array(
        '3' => array(
            'province' => '110000',
            'city' => '110100',
            'district' => '110101'
        )
    )
);
$arr_tpl = array('CITIZENSHIP', 'ADDRESS_3_province', 'ADDRESS_3_city');
$arr_new = array();
foreach ($arr_tpl as $key => $val) {
    $arr_id = explode('_', $val);
    $str_arr_key = '';
    foreach ($arr_id as $in_key => $in_val) {
        $str_arr_key .= "[{$in_val}]";
    }
    $form_key = "\$arr$str_arr_key";
    $new_key = "\$arr_new$str_arr_key";
    eval("\$arr_v = $form_key;");
    if (!empty($arr_v)) {
        eval("$new_key = \$arr_v;");
    }
}

 

 输出结果:

Array
(
    [CITIZENSHIP] => 05
    [ADDRESS] => Array
        (
            [3] => Array
                (
                    [province] => 110000
                    [city] => 110100
                )

        )

)

 

 

 

 

 

分享到:
评论

相关推荐

Global site tag (gtag.js) - Google Analytics