我正在尝试使用递归函数来构建具有继承的数组。
假设我有一个看起来像这样的对象“a”(父 ID 为“b”)
a = 'Item 1', 'Item 2', Parent_ID, 'Item 3', 'Item 4'
我有一个看起来像这样的对象“b”:
b = 'Item X', 'Item Y'
期望的结果是这样的:
final = 'Item 1', 'Item 2', 'Item X', 'Item Y', 'Item 3', 'Item 4'
所以基本上 array_splice 函数继续寻找父 ID 并插入父项。我在代码上朝着这个方向发展:
$master_list = array();
getItems("a", $master_list);
function getItems($ID, &$master_list){
$master_list = retrieve_items($ID); // returns items from "a"
//if Parent ID exists, run function again to retrieve items from parent and insert them in place of the Parent ID
if(Parent_ID)
array_splice($master_list, [parent index], 1, getItems($parentID, $master_list);
}
我的函数将其作为(不希望的)结果返回:
final = 'Item 1', 'Item 2', 'Item 3', 'Item 4', 'Item X', 'Item Y'
显然这是伪代码,只是为了说明问题。谁能指出我正确的方向?我非常感激。