} $struct6 = new classstruct1(); $struct7 = new classstruct2(); $struct8 = $struct3; $struct8["cafeina"]["ss"] = new classstruct2(); //getdiff(modified struct, static struct) echo "\ngetdiff(modified struct, static struct)<br/>\n"; print_r($treewalker->getdiff($struct4, $struct3)); echo "<br/><br/>\n\n"; //replaceValues(struct, newvalue, known key, (boolean)change all the keys values found if the occurrence be a leaf) /** * {"cafeina": "oi"} -> leaf * {"cafeina": "child": {"name": "Lucas"}} -> non-leaf */ echo "replaceValues(struct, newvalue, known key, isleaf)<br/>\n"; print_r($treewalker->replaceValues($struct4, "test", "ss", false)); echo "<br/><br/>\n\n"; //createDynamicallyObjects(struct, newObjectPath) echo "createDynamicallyObjects(struct, newObjectPath)<br/>\n"; print_r($treewalker->createDynamicallyObjects($struct5, array("dd", 2, 5, 9, 10, 11))); echo "<br/><br/>\n\n"; //getDynamicallyValue(struct, static) echo "getDynamicallyValue(struct, static)<br/>\n"; echo "Static access<br/>\n"; print_r($struct4["cafeina"]["ss"]); // Static access echo "\n<br/>Dynamic access<br/>\n"; $dynamicpath = array("cafeina", "ss"); print_r($treewalker->getDynamicallyValue($struct4, $dynamicpath)); // Dynamic access echo "<br/>\n\n";
//walker(struct, function) ------------------------------------------------------------- echo "walker(struct, function)<br/>\n"; print_r($treewalker->walker($struct4, function (&$struct, $key, &$value) { //Removing element if ($key == "ff") { unset($struct[$key]); } //changing element if ($key == "ff1") { $value = array("son" => "tiago"); } })); echo "<br/><br/>\n\n"; //createDynamicallyObjects(struct, newObjectPath) --------------------------------------- echo "createDynamicallyObjects(struct, newObjectPath)<br/>\n"; print_r($treewalker->createDynamicallyObjects($struct3, array("cafeina", "novo"))); echo "<br/><br/>\n\n"; //getDynamicallyValue(struct, static) --------------------------------------------------- echo "getDynamicallyValue(struct, static)<br/>\n"; echo "Static access<br/>\n"; print_r($struct4["cafeina"]["ss"]); // Static access echo "\n<br/>Dynamic access<br/>\n"; $dynamicpath = array("cafeina", "ss"); print_r($treewalker->getDynamicallyValue($struct4, $dynamicpath)); // Dynamic access echo "<br/>\n\n"; //setDynamicallyValue(struct, static, value) -------------------------------------------- echo "setDynamicallyValue(struct, static, value)<br/>\n"; echo "Static access<br/>\n"; $struct4["cafeina"]["ss"] = "newvalue";