//change a.b.c value r e s u l t [ ′ c h a n g e ′ ] = r e c u r A r r a y D i f f ( result['change'] = recurArrayDiff(result[′change′]=recurArrayDiff(array, $keyArray, ‘change a.b.c value’);
//delete a.b.c r e s u l t [ ′ d e l e t e ′ ] = r e c u r A r r a y D i f f ( result['delete'] = recurArrayDiff(result[′delete′]=recurArrayDiff(array, k e y A r r a y ) ; e c h o j s o n e n c o d e ( keyArray); echo json_encode(keyArray);echojsonencode(result);
function recurArrayDiff($array, $keyArray, $replace = null) { $key0 = k e y A r r a y [ 0 ] ; i f ( i s a r r a y ( keyArray[0]; if (is_array(keyArray[0];if(isarray(array) && isset(KaTeX parse error: Expected '}', got 'EOF' at end of input: … unset(keyArray[0]); k e y A r r a y = a r r a y v a l u e s ( keyArray = array_values(keyArray=arrayvalues(keyArray); if (!isset(a r r a y [ array[array[key0])) { a r r a y [ array[array[key0] = []; } a r r a y [ array[array[key0] = recurArrayDiff(a r r a y [ array[array[key0], $keyArray, KaTeX parse error: Expected 'EOF', got '}' at position 15: replace); }̲ else { …replace)) { unset(a r r a y [ array[array[key0]); } else { a r r a y [ array[array[key0] = $replace; } } return $array; } 输出 { “change”: { “a”: { “b”: { “c”: “change a.b.c value”, “e”: “f” } }, “g”: { “h”: “i” } }, “delete”: { “a”: { “b”: { “e”: “f” } }, “g”: { “h”: “i” } } } 升级版 封装为一个类,支持数组任意层级子元素的增删改查