PHP多维数组生成统一下标索引方法
程序员文章站
2022-05-23 12:06:18
...
有这样一个需求:将下面这段代码: $params = Array ( [tab1] = Array ( [server] = Array ( [0] = 137 [1] =122 ) ) ); 生成如下数组: $params= Array( [tab1][server][0]=137, [tab1][server][1]=122 ); 注意了,是将多维数组中的下标进行整合成统一的索引
有这样一个需求:将下面这段代码:
$params =
Array
(
[tab1] => Array
(
[server] => Array
(
[0] => 137
[1] => 122
)
)
);
生成如下数组:
$params =
Array(
'[tab1][server][0]' = 137,
'[tab1][server][1]' = 122
);
注意了,是将多维数组中的下标进行整合成统一的索引。
自己写了个测试代码如下,看看大家有没有更好的建议和想法: EaglePHP
源码与演示:源码出处 演示出处
$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 ''; print_r($data); print_r($params); echo '';
下一篇: PHP获取文件平内的文件数
推荐阅读