替换关联数组键中的字符

时间:2017-02-11 03:59:12

标签: php arrays string replace

我想用$array中的所有键替换带有连字符(短划线)的下划线,而不是别的。

这是我的阵列:

Array ( [username] => bob [email] => bob123@gmail.com [first_name] => Bob [last_name] => Jones [picture] => /images/no-picture.png [birthday] => )

在此示例中,我想将[first-name]替换为[first_name],并将-替换为_的其他密钥替换为no-picture.png。我希望密钥不是值。例如,我 NOT 想要$test = str_replace('-', '_', $array); ,因为这是一个值。谢谢!

{{1}}

2 个答案:

答案 0 :(得分:2)

使用array_keys()绑定新密钥后使用array_combine()获取密钥:

<?php
function replaceArrayKeys( $array ) {
    $replacedKeys = str_replace('-', '_', array_keys($array));
    return array_combine($replacedKeys, $array);
}

$array =[
    'username' => 'bob',
    'email' => 'bob123@gmail.com',
    'first-name' => 'Bob',
    'last-name' => 'Jones',
    'picture' => '/images/no-picture.png',
    'birthday' => '1',
];

print_r( replaceArrayKeys($array) );

答案 1 :(得分:0)

另一个解决方案是使用array_map:

-Credential

输出继电器:

Start-Process -Verb RunAs powershell -ArgumentList '-noprofile', '-File', $script