php - 从键中递归地向左修剪特定字符

标签 php arrays recursion

我不太明白...

我希望有一个默认的 PHP 函数来执行此操作,但似乎没有。我在网上找到的代码似乎并不适合我的情况,因为人们通常只需要修改数组值而不是它们的键。

我基本上需要一个递归函数,用没有该符号的相同键替换每个以“_”开头的键....

这里有人用过类似的东西吗?

最佳答案

试试这个:

function replaceKeys(array $input) {

    $return = array();
    foreach ($input as $key => $value) {
        if (strpos($key, '_') === 0)
            $key = substr($key, 1);

        if (is_array($value))
            $value = replaceKeys($value); 

        $return[$key] = $value;
    }
    return $return;
}

所以这段代码:

$arr = array('_name' => 'John', 
             'ages'  => array(
                  '_first' => 10, 
                  'last'   => 15));

print_r(replaceKeys($arr));

将产生(如 codepad 所示):

Array
(
    [name] => John
    [ages] => Array
        (
            [first] => 10
            [last] => 15
        )

)

关于php - 从键中递归地向左修剪特定字符,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3808602/

相关文章:

PHP 忽略 php.ini 中的 curl.cainfo 设置(显然)

php - 多个单选按钮ajax post

php - 使用 codeigniter 的事件菜单选项卡

python - 在执行操作的单独子数组中获取 numpy 子数组的结果,而不使用 for 循环

java - 使用此函数查找使用操作(+、- 和 concat)将数字 1 - 9 添加到总和的表达式时,我哪里出错了?

php - javascript 中的 sprintf url 格式

java - 编写接受字符串并返回字符数组的方法时遇到问题

javascript - 将带有参数的函数添加到 Array Javascript (Node.js)

java - 使用递归和通配符 (*) 在文件中搜索

recursion - 从 Julia AST 中剥离行号