我有一段多维数组输出,如下所示:
Array
(
[0] => Array
(
[item] => null
[count] => 0
[child] => Array
(
[Dagadu Bocah] => Array
(
[item] => Dagadu Bocah
[count] => 47
[child] => Array
(
[HirukPikuk] => Array
(
[item] => HirukPikuk
[count] => 5
[child] => Array
(
[DGD] => Array
(
[item] => DGD
[count] => 1
[child] =>
)
)
)
在我的期望中,我可以使用unset
foreach 循环中的函数删除每个具有 3 个键的数组,即“item”、“count”和“child”,以便生成如下数组:
Array
(
[0] => ([Dagadu Bocah] =>Array([HirukPikuk] =>Array([DGD])
)
这是我的代码,不符合我的期望:
public function conditionalPatternBase($a){
{
foreach($a as $key => $value){
foreach($value['child'] as $key1 => $value1){
if(is_array($value1['child'])){
foreach($value1['child'] as $value2){
unset($value2);
if(is_array($value2['child'])){
foreach($value2['child'] as $value3){
unset($value3);
if(is_array($value3['child'])){
foreach($value3['child'] as $value4){
unset($value4);
if(is_array($value4['child'])){
foreach($value4['child'] as $value5){
unset($value5);
}
}
}
}
}
}
}
}
}
}
}
}
有人可以帮忙吗?
对于您想要使用的那种数据递归 https://en.wikipedia.org/wiki/Recursion_(computer_science), 像这样:
<?php
function getChildKey(array $data)
{
$result = [];
if (isset($data['child'])) {
foreach ($data['child'] as $key => $value) {
$result[$key] = getChildKey($value);
}
}
if (empty($result)) {
return '';
}
return $result;
}
$input = [
[
'item' => null,
'count' => 0,
'child' => [
'Dagadu Bocah' => [
'item' => 'Dagadu Bocah',
'count' => 47,
'child' => [
'HirukPikuk' => [
'item' => 'HirukPikuk',
'count' => 5,
'child' => [
'DGD' => [
'item' => 'DGD',
'count' => 1,
'child' => null,
],
],
],
],
],
],
],
];
$output = [];
print_r($input);
foreach ($input as $index => $child) {
$output[$index] = getChildKey($child);
}
print_r($output);
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)