数组动态键值

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
                )

        )

)

 

 

 

 

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值