2017-03-19 12 views
1

すべての値をPHP配列の空の文字列で空にし、すべてのキー名を再帰的に保持したいとします。PHP |配列のすべての値を再帰的に空にしますが、すべてのキーを保持

例:

<?php 
$input = 
['abc'=> 123, 
    'def'=> ['456', '789', [ 
    'ijk' => '555'] 
    ] 
]; 

私は私の配列はこのようになりたい:

<?php 
$output = ['abc'=> '', 
    'def'=> ['', '', [ 
     'ijk' => ''] 
     ] 
]; 
+1

arra_walk_recursive - https://eval.in/757067 – splash58

答えて

4

あなたは再帰関数を使用する必要があります

function setEmpty($arr) 
{ 
    $result = []; 
    foreach($arr as $k=>$v){ 
    /* 
     * if current element is an array, 
     * then call function again with current element as parameter, 
     * else set element with key $k as empty string '' 
     */ 
     $result[$k] = is_array($v) ? setEmpty($v) : ''; 
    } 
    return $result; 
} 

そして、ちょうどあなたの配列で、この関数を呼び出すと唯一のパラメータ:

$input = [ 
    'abc' => 123, 
    'def' => [ 
     '456', 
     '789', [ 
      'ijk' => '555', 
     ], 
    ], 
]; 

$output = setEmpty($input); 
関連する問題