<?php $menu = array( array(1,3,'Wurm 1.1', 2, 10), array(2,6,'Vogel 2.1', 2, 30), array(3,0,'Tiger 1', 1, 10), array(4,6,'Hund 2.2', 2, 40), array(5,3,'Katze 1.2', 2, 11), array(6,0,'Pferd 2', 1, 20), array(7,1,'Baer 1.1.1', 3, 0), array(8,3,'Schwein 1.3', 2, 12), array(9,4,'Esel 2.2.1', 3, 0), ); // Algorithmus hier $result = array(); function flatten($arr) { global $result; foreach($arr as $r) { if(isset($r["r"])) { $x = $r["r"]; unset($r["r"]); $result[] = $r; flatten($x); } else { $result[] = $r; } } } $tmp = array(); foreach($menu as &$m) { $id = $m[0]; $ref = $m[1]; $m["r"] = array_filter($menu, function($item) use ($id) { return $item[1] == $id; }); if(sizeof($m["r"]) == 0) unset($m["r"]); if($ref == 0) { $tmp[] = $m; } } flatten($tmp); $target = array( array(3,0,'Tiger 1', 1, 10), array(1,3,'Wurm 1.1', 2, 10), array(7,1,'Baer 1.1.1', 3, 0), array(5,3,'Katze 1.2', 2, 11), array(8,3,'Schwein 1.3', 2, 12), array(6,0,'Pferd 2', 1, 20), array(2,6,'Vogel 2.1', 2, 30), array(4,6,'Hund 2.2', 2, 40), array(9,4,'Esel 2.2.1', 3, 0), ); var_dump($result == $target);
You have javascript disabled. You will not be able to edit any code.