2017-11-17 4 views
-2

array_replace_recursiveと同じことをする関数が必要ですが、新しい作成された値は空の文字列のままです。array_replace_recursive Lodashのようなカスタム関数mergeWith

JSON 1 
{ 
    "test1":"test1", 
    "test2":"test2" 
} 

JSON 2 before 
{ 
    "test1":"test1" 
} 

JSON 2 after 
{ 
    "test1":"test1", 
    "test2" : "" 
} 

ご存知ですか?

私は ^^

(のようなhttps://lodash.com/docs/#mergeWith

を継続する、個人的な再帰関数をテストしていますが、事前にありがとうございます。

+0

は、あなたは私たちが作業するための任意の例を持っていますか? https://stackoverflow.com/help/how-to-askコミュニティがあなたを助けることができるように質問する方法についての良い情報源です。 :-) –

+0

例を追加して、私は他のソリューションを検索して、私は同時にテストします:D – Nomanoclass

+0

あなた自身のソリューションを最初に探したり、試したりしてみてください。他の人にあなたのために仕事全体をやるよう求めることは不適切です。 – Narf

答えて

1
<?php 

$a = [ 
    'foo' => 
    [ 
     'bar' => 'Stool', 
     'bat' => 'Cricket' 
    ] 
]; 

$b = [ 
    'foo' => 
    [ 
     'bar' => 'Tat' 
    ], 
    'qux' => 
    [ 
     'quux' => 'Cross' 
    ] 
]; 

array_walk_recursive($b, 
    function(&$v) { 
     $v = ""; 
    } 
); 
$c = array_replace_recursive($a, $b); 

var_export($c); 

出力:

array (
    'foo' => 
    array (
    'bar' => '', 
    'bat' => 'Cricket', 
    ), 
    'qux' => 
    array (
    'quux' => '', 
    ), 
) 
+0

ありがとう、それは仕事です、他の順序で、それは仕事です:p – Nomanoclass

関連する問題