再帰関数を使用して、継承のある配列を構築しようとしています。
このようなオブジェクト「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'
したがって、基本的には、親 ID を探し続けて親アイテムを挿入する array_splice 関数です。私はコードでこの方向に進んでいます:
$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'
明らかに、これは疑似コードであり、要点を理解することだけを目的としています。誰かが私を正しい方向に向けることができますか? 大変感謝しています。