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