有这样一个需求:将下面这段代码: $params = Array ( [tab1] = Array ( [server] = Array ( [0] = 137 [1] =122 ) ) ); 生成如下数组: $params= Array( [tab1][server][0]=137, [tab1][server][1]=122 ); 注意了,是将多维数组中的下标进行整合成统一的索引
有这样一个需求:将下面这段代码:
源码与演示:源码出处 演示出处
$params = array('tab1'=> array('server1'=>array(137, 122), 'server2'=>array(100,200) ), 'tab2'=> array('server3'=>array(400, 500), 'server4'=>array(600, 700), 'aaa'=>array('bbb'=>array(1,2,3)) ), 'name' => 'dimain', 'abc' => array(4,5,6=>array('apple', 'lizi')) ); function test(&$params, &$tmpKeyArr, &$data){ $i = 0; foreach ($params as $k=>&$v){ $i++; if(is_array($v)) { $tmpKeyArr[] = '['.$k.']'; test($v, $tmpKeyArr, $data); }else{ $data[implode($tmpKeyArr, '').'['.$k.']'] = $v; } if(count($params) == $i) array_pop($tmpKeyArr); } } $tmpKeyArr = array(); $data = array(); test($params, $tmpKeyArr, $data); echo '<pre class="brush:php;toolbar:false">'; print_r($data); print_r($params); echo '