I have an array with the following format. Example Json for reference: https://jsoneditoronline.org/#left=cloud.42c7485653ea40549da90cf4338f8b23
I want to add “super_parent_id” in each of the childData arrays. So if childData exists, i need to append super_parent_id to that child array. Similarly if a childData array exists within that array, i need to append super_parent_id to that child array.
I think recursion can solve this issue but I am not sure how to do it. Thank you.
Advertisement
Answer
Yes, correct, recursion is one of the approaches for the problem. Here is a code snippet explaining how to implement the recursive modification of such data structure.
function appendSuperParentId(&$elem, $superParentId){
$elem["super_parent_id"] = $superParentId;
if (isset($elem["childData"])){
appendSuperParentId($elem["childData"], $superParentId);
}
}
$elems = [
[
"name" => "xyz",
"childData" => [
"name" => "foo",
"childData" => [
]
]
]
];
for ($i = 0; i < count($elems); $i++){
appendSuperParentId($elems[$i]["childData"], $superParentId);
}
not tested, but idea should work.