我正在寻找一个解扁平可变多维数组的解决方案,将最后一个可用数组中的所有值展平为单个Array[]
(包含多维数组中每个最后一个数组的数据集) )。
感谢任何帮助!
与其他问题不同
因为结尾结果应该是包含所有Arrays
的集合:
array(
'title' => xx,
'id' => xx
)
列在不同的多维数组中。
不同的项目都已修复keys
:title
和id
。
示例基本数组
$data = array(
array(
'title' => xx,
'id' => xx
),
array(
array(
array(
'title' => xx,
'id' => xx
),
array(
'title' => xx
'id' => xx
)
)
),
array(
array(
array(
array(
'title' => xx,
'id' => xx
),
array(
'title' => xx,
'id' => xx
),
array(
'title' => xx,
'id' => xx
)
)
),
array(
'title' => xx,
'id' => xx
),
array(
array(
array(
array(
'title' => xx,
'id' => xx
)
)
)
)
)
);
应该平放到
$data = array(
array(
'title' => xx,
'id' => xx
),
array(
'title' => xx,
'id' => xx
),
array(
'title' => xx,
'id' => xx
),
array(
'title' => xx,
'id' => xx
),
array(
'title' => xx,
'id' => xx
),
array(
'title' => xx,
'id' => xx
),
array(
'title' => xx,
'id' => xx
),
array(
'title' => xx,
'id' => xx
)
);
答案 0 :(得分:1)
function flatten_array(&$data) {
foreach ($data as $index => &$item) {
if(has_array_child($item)) {
unset($data[$index]);
flatten_array($item);
$data = array_merge($data, $item);
}
}
}
function has_array_child($item) {
foreach($item as $child) {
if(is_array($child)) {
return TRUE;
}
}
return FALSE;
}
flatten_array($data);
print_r($data);