gpt4 book ai didi

php - 递归删除数组键前缀

转载 作者:行者123 更新时间:2023-12-05 09:17:22 25 4
gpt4 key购买 nike

我有一个以下格式的数组(每个子数组都有父键作为前缀):

$input = array(
'seo_text' => array(
'seo_text_title' => '',
'seo_text_description' => '',
'seo_text_button' => array(
'seo_text_button_text' => '',
'seo_text_button_url' => '',
'seo_text_button_new_tab_enabled' => '',
),
),
);

我想把它转换成下面的格式:

$input = array(
'seo_text' => array(
'title' => '',
'description' => '',
'button' => array(
'text' => '',
'url' => '',
'new_tab_enabled' => '',
),
),
);

我正在尝试编写一个递归函数,但它没有按照预期的方式工作。

最佳答案

解决方案:

function removeKeyPrefix(array $array, string $prefix = ''): array
{
$newArray = [];
$prefixLength = strlen($prefix);

foreach ($array as $key => $value) {
if (substr($key, 0, $prefixLength) === $prefix) {
$newKey = substr($key, $prefixLength);
} else {
$newKey = $key;
}

$newArray[$newKey] = is_array($value) ? removeKeyPrefix($value, $key.'_') : $value;
}

return $newArray;
}

$input = removeKeyPrefix($input);

Online demo on 3v4l

关于php - 递归删除数组键前缀,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/48225782/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com