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