【发布时间】:2023-03-25 22:59:02
【问题描述】:
我需要从这个数组中获取所有的键。我尝试了递归调用,但只获得了第一个元素键。我希望所有数组键都以级别存储到数组中。表示keys[0] = array(540,198)。下面是我要遍历并获取所有键的数组。我已经工作了超过 1 天,但没有得到任何东西,请帮助解决这个问题。
(
[ch] => Array
(
[540] => Array
(
[194] => Array
(
[16] => Array
(
[144] => Array
(
)
[145] => Array
(
)
[146] => Array
(
)
[147] => Array
(
)
[148] => Array
(
)
[195] => Array
(
)
[199] => Array
(
)
[149] => Array
(
)
[200] => Array
(
)
[150] => Array
(
)
[444] => Array
(
)
[151] => Array
(
)
[445] => Array
(
)
[446] => Array
(
)
[152] => Array
(
)
)
)
)
[198] => Array
(
[194] => Array
(
[16] => Array
(
[144] => Array
(
)
[145] => Array
(
)
[146] => Array
(
)
[147] => Array
(
)
[148] => Array
(
)
[195] => Array
(
)
[199] => Array
(
)
[149] => Array
(
)
[200] => Array
(
)
[150] => Array
(
)
[444] => Array
(
)
[151] => Array
(
)
[445] => Array
(
)
[446] => Array
(
)
[152] => Array
(
)
)
)
)
)
)
$this->checkProductConfiguraions($configuraion,$count,$levelKeys);
function checkProductConfiguraions($configuraion,$count,$levelKeys) {
foreach ($configuraions as $configuraion) {
if (is_array($configuraion)) {
$parentKeys = array_keys($configuraion);
if(isset($levelKeys[$count])){
$levelKeys[$count] = array_unique(array_merge($levelKeys[$count],$parentKeys));
} else {
$levelKeys[$count] = $parentKeys;
}
$count++;
$levelKeys[$count] = array();
for($i=0;$i<count($parentKeys);$i++){
$levelKeys[$count] = array_unique(array_merge($levelKeys[$count],array_keys($configuraion[$parentKeys[$i]])));
if(is_array($configuraion)){
$levelKeys = $this->checkProductConfiguraions($configuraion,$count,$levelKeys);
}
}
}
}
}
【问题讨论】:
-
发布您的代码。
-
@SimoneRossaini 我添加了代码。查看并进行必要的修改。
标签: php arrays multidimensional-array associative-array