2016-12-21 10 views
0

新しいと交換してください私は、鍵の交換についてstackexchange上の多くの例を見つけましたが、私は私の状況を扱うことができません。 foreachのとarray_mapを(同様あるarray_walk)とそれが成し遂げることができません:私は両方をやろうとしています。配列:変更キーと1

$arr = ["first_name"=>"a","second_name"=>"","third_name"=>"b"]; 

$arr = array_map(function($key, $value) { 
    $key = str_replace("_name", "", $key); 
    return array($key=>$value); 
}, array_keys($arr), $arr); 

出力は次のようになります。

$arr = ["first"=>"a","second"=>"","third"=>"b"]; 

が、そうではありません。あなたは私の両方の方法を表示することができます:foreachのとarray_mapを、これがどのように行われるべき?

+1

これは 'array_map'で行うことはできません。この関数は、キーではなく値のみを返します。 – Barmar

答えて

0
$arr = ["first_name" => "a","second_name" => "","third_name" => "b"]; 

foreach($arr as $key => $value) { 
     $newkey = str_replace("_name", "", $key); 
     $arr[$newkey] = $value; 
     unset($arr[$key]); 
} 
関連する問題