2017-02-11 10 views
0

$arrayのすべてのキーでアンダースコアをハイフン(ダッシュ)に置き換えたい。関連する配列キーの文字を置換する

は、ここに私の配列です:

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

この例では、私は_と交換する-を持ち[first_name]、これまで他のキーと[first-name]を交換したいです。 i ONLYキーに値ではなく値を指定します。たとえば、私はではないno-picture.pngが値なのでそれを望んでいます。ありがとう!使用後

$test = str_replace('-', '_', $array); 

答えて

1

使用array_keys() GETキーarray_combine()バインド新しいキー:

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

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

print_r(replaceArrayKeys($array)); 
0

別の解決策は、array_mapを使用している:

function setHyphen(&$array){ 
    $array= array_combine(array_map(function($str){ return str_replace("_","-",$str); }, array_keys($array)),array_values($array)); 
} 
setHyphen($array); 
print_r($array); 

出力リレー:

Array ( 
    [username] => bob 
    [email] => [email protected] 
    [first-name] => Bob 
    [last-name] => Jones 
    [picture] => /images/no-picture.png 
    [birthday] => 123) 
関連する問題