Vorausgesetzt, Sie haben bereits Daten aus der Datenbank genommen, erhalten Sie unter Lösung, was Sie brauchen.
Der Weg darüber ist über Rekursion.
php sandbox online
<?php
function buildTree(array &$elements, $parentId = 0) {
$branch = array();
foreach ($elements as $element) {
if ($element['parentid'] == $parentId) {
// recursion:
$children = buildTree($elements, $element['id']);
if ($children) {
$element['children'] = $children;
}
$branch[$element['id']] = $element;
unset($elements[$element['id']]);
}
}
return $branch;
}
$rows = [
['id' => 1, 'firstname' => 'john1', 'lastname' => 'doe', 'parentid' => 0],
['id' => 2, 'firstname' => 'john2', 'lastname' => 'doe', 'parentid' => 1],
['id' => 3, 'firstname' => 'john3', 'lastname' => 'doe', 'parentid' => 1],
['id' => 4, 'firstname' => 'john4', 'lastname' => 'doe', 'parentid' => 0],
['id' => 5, 'firstname' => 'john5', 'lastname' => 'doe', 'parentid' => 3],
];
print_r(buildTree($rows));
und das resultierende Array:
Array
(
[1] => Array
(
[id] => 1
[firstname] => john1
[lastname] => doe
[parentid] => 0
[children] => Array
(
[2] => Array
(
[id] => 2
[firstname] => john2
[lastname] => doe
[parentid] => 1
)
[3] => Array
(
[id] => 3
[firstname] => john3
[lastname] => doe
[parentid] => 1
[children] => Array
(
[5] => Array
(
[id] => 5
[firstname] => john5
[lastname] => doe
[parentid] => 3
)
)
)
)
)
[4] => Array
(
[id] => 4
[firstname] => john4
[lastname] => doe
[parentid] => 0
)
)
Nachdem Sie json_encode
Ergebnis you will get:
{
"1": {
"id": 1,
"firstname": "john1",
"lastname": "doe",
"parentid": 0,
"children": {
"2": {
"id": 2,
"firstname": "john2",
"lastname": "doe",
"parentid": 1
},
"3": {
"id": 3,
"firstname": "john3",
"lastname": "doe",
"parentid": 1,
"children": {
"5": {
"id": 5,
"firstname": "john5",
"lastname": "doe",
"parentid": 3
}
}
}
}
},
"4": {
"id": 4,
"firstname": "john4",
"lastname": "doe",
"parentid": 0
}
}
Sie mindestens drei Fragen in einer fragen. 1. ob man Daten über mysql bekommt und mit php daran arbeitet 2. wie man durch die Ergebnisse iteriert 3. wie man php array/object in json umwandelt ('json_encode()' btw.). Bitte erklären Sie, was Sie brauchen, zeigen Sie uns, was Sie bisher versucht haben. –
So habe ich keine Probleme mit json_encode oder einfache oder gemeinsame mysql Querys. So von der technischen Seite habe ich ein grundlegendes Verständnis für alle Maßnahmen, die ich tun muss. Das Problem ist, dass ich nicht über eine Möglichkeit, durch die Daten abfragen, so dass ich das multidimensionale Array, das ich dann in JSON konvertieren kann – BeatzCraft