Obwohl es einfach scheinen mag, habe ich seit Tagen mit diesem Fall zu kämpfen, und ich habe nicht in der Lage, eine Lösung zu finden. Ich erkläre es auf den folgenden Zeilen:PHP - Rekursive Unterkategorien hinzufügen
Was ich habe
Ich habe zwei Arrays bekam: eine mit der Reihenfolge der Kategorien und ein anderes mit den Werten dieser Kategorien. Etwas wie folgt:
$orders =
[
{
category: 3
},
{
category: 8
}
];
$values =
{
3: [
{
id: 1,
value: 'Value 1'
},
{
id: 2,
value: 'Value 2'
},
{
id: 3,
value: 'Value 3'
}
],
8: [
{
id: 6,
value: 'Value 6'
},
{
id: 7,
value: 'Value 7'
}
]
};
Wie Sie sehen können, gibt es zwei Kategorien aber sie können mehr sein (in der Tat bis zu 10 von ihnen).
EDIT
Die Beziehung zwischen result
und den anderen Variablen ist, dass, wie Sie sehen können, Kategorie 3 hat Werte mit id
1, 2 und 3. So, wie die Kategorie 3 der erste in der ist order
Array, ich muss jede Kategorie in Kategorie 3 bekommen.
Also, als erklärendes Beispiel sollte Kategorie 3.1 (sowie 3.2 und 3.3) innerhalb Unterkategorien 8.6 und 8.7 haben.
Was ich
brauchen muss ich machen sie jeden der vorherigen Unterkategorien unter Berücksichtigung der Reihenfolge. Also, da die Reihenfolge die erste Kategorie Nummer 3 und dann die Kategorie Nummer 8 ist, muss jeder Wert der Kategorie 3 innerhalb aller Werte der Kategorie 8 sein (und so weiter, wenn mehr Kategorien hinzugefügt wurden, jeder der Werte der nächsten Kategorie) wäre unter Kategorie Nummer 8).
Also, was ich haben müssen, ist das folgende Ergebnis:
$result =
[
{
category: {id: 1}, // Category 3 first value
subcategories: [
{
category: {id: 6} // Category 8 first value
},
{
category: {id: 7} // Category 8 second value
}
]
},
{
category: {id: 2}, // Category 3 second value
subcategories: [
{
category: {id: 6} // Category 8 first value
},
{
category: {id: 7} // Category 8 second value
}
]
},
{
category: {id: 3}, // Category 3 third value
subcategories: [
{
category: {id: 6} // Category 8 first value
},
{
category: {id: 7} // Category 8 second value
}
]
}
]
Was ich
versucht habe ich nicht alle Ansätze schreiben, die ich versucht habe, aber ich kann nicht scheinen zu finde dafür eine passende Lösung.
Ich habe rekursive Funktionen versucht (und ich denke, es ist der richtige Weg, um dies zu implementieren), aber alles, was ich mitkommen kann, ist ein 'Stack Call überschritten' wie Fehler.
Aclarations
Datenquelle ist offen, so dass es für Änderungen geeignet ist. Ich möchte es jedoch so beibehalten, denn es gibt zukünftige Implikationen für diese Struktur - wenn es notwendig ist, können sie sich auch ändern.
Ich verstehe nicht wirklich das '$ result' Objekt unter dem" Was ich brauche "-Teil. Wie übersetzt sich '$ orders' in' $ result'? Ich sehe dort Kategorie 8 nicht einmal. – Mike
Ich habe die Frage bearbeitet (unter Was ich habe), so ist es klarer. Vielen Dank für Ihre Zeit und Entschuldigung für die Verwirrung. – Unapedra