【发布时间】:2021-04-21 13:30:53
【问题描述】:
主要是多维数组可以是随机的,我不知道里面到底有多少个数组。这就是为什么函数应该包含递归并检查它内部是否有更多数组,下面的示例在没有预先配置的情况下无法做到。感谢任何帮助
$arrays = array(
array(
'House' => 'Baratheon',
'Sigil' => 'A crowned stag',
'Motto' => 'Ours is the Fury',
),
array(
'Leader' => 'Eddard Stark',
'House' => 'Stark',
'Motto' => 'Winter is Coming',
'Sigil' => 'A grey direwolf'
),
array(
array('SomeArray' => 'You are cool'),
'House' => 'Lannister',
'Leader' => 'Tywin Lannister',
'Sigil' => 'A golden lion'
),
array(
'Q' => 'Z'
)
);
function next_element($array) {
foreach ($array as $some_type) {
if (is_array($some_type)) {
return true;
} else {
return false;
}
}
}
function check_in($inputs) {
foreach ($inputs as $position => $input) {
if (is_array($input) && next_element($input)) { // case with multidimentional array
check_in($input);
$check_in_result[] = "There are should be recursion!!!!!";
} else { // case with one simple array
$check_in_result[] = $input;
}
}
return $check_in_result;
}
已尝试使用 array_walk_recursive(),但该函数正在处理所有元素并返回一个包含所有键和值的数组。在这种情况下,它应该是 array(array1, array2, array3, array4) 用于下一个阶段,即 foreach 循环。
结果应该是这样的:
Array
(
[0] => Array
(
[House] => Baratheon
[Sigil] => A crowned stag
[Motto] => Ours is the Fury
)
[1] => Array
(
[Leader] => Eddard Stark
[House] => Stark
[Motto] => Winter is Coming
[Sigil] => A grey direwolf
)
[2] => Array
(
[SomeArray] => You are cool
)
[3] => Array
(
[House] => Lannister
[Leader] => Tywin Lannister
[Sigil] => A golden lion
)
[4] => Array
(
[Q] => Z
)
)
【问题讨论】:
-
你能指定你想要的结果是什么吗?从问题上看不清楚。
-
是的,Array ([0] => Array ([House] => Baratheon) [1] => Array ([Leader] => Eddard Stark) [2] => Array ([SomeArray ] => 你很酷)[3] => 数组([House] => 兰尼斯特)[4] => 数组([Q] => Z))
-
我删除了数组的一部分,它太大了,它应该是一个数组,其中包含一层中的其他数组
-
通过编辑您的问题添加新信息(
Edit链接可以在您的帖子底部找到)。评论不适用于大量信息(如您所见)。您应该可以在那里添加整个输出。 -
你确定不能edit?