|
|
1
1
$A=数组(2=>array(),4=>array(12=>array(),13=>array()),5=>array(),10=>array(),14=>array()); 打印($A); $B=重构($A); PrimtTyr($ B); 很抱歉,没有看到您希望内部数组的键和值不相同。 编辑:在您更新了您的问题之后,我编辑了我的函数以执行您需要的操作: function refactor($a, $rootNode = false){
$result = array();
foreach($a as $k => $v){
if($rootNode){
$result[$k] = (is_array($v) && count($v) > 0) ? refactor($v) : $k;
}else{
$result[] = (is_array($v) && count($v) > 0) ? refactor($v) : $k;
}
}
return $result;
}
$a = array(2 => array(), 4 => array(12 => array(), 13 => array(16 => array())), 5 => array(), 10 => array(), 14 => array());
print_r($a);
$b = refactor($a, true);
print_r($b);
|
|
|
2
5
未经测试的 |
|
|
3
0
|
|
|
Megrez7 · C#ToArray转换合并为一行,导致数组元素更改 1 年前 |
|
|
bairog · 从按属性筛选的对象数组字典中创建值数组 1 年前 |
|
|
Anka Hanım · 关于结构和动态数组地址的问题 1 年前 |
|
|
Geremia · 2D NumPy数组+1D数组? 1 年前 |
|
|
MARTIN · 交换第一个和最后一个单词,反转所有中间的字符 1 年前 |
|
|
Paul Williams · 迭代数组时输出有问题 1 年前 |