@ 2016-11-18T09:43:25Z <?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
/*
steps:
1. sort items by levelId and sortId - finished
2. get max levelId value 'x' = iterations - ...that seems to be not the way to go.
better way would be recursion for each element and search for children
belonging to the current menuId....
3. ...
*/
const IDX_ID = 0;
const IDX_PARENT = 1;
const IDX_SORT = 4;
$result = array();
foreach ($menu as $key => $row){
$levelId[$key] = $row[3];
$sortId[$key] = $row[4];
}
array_multisort($levelId, SORT_ASC, $sortId, SORT_ASC, $menu);
$parentId = 4;
$items = array_filter($menu, function($item) use ($parentId) {
return $item[IDX_PARENT] == $parentId;
});
var_dump($items);
$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);
Enable javascript to submit You have javascript disabled. You will not be able to edit any code.
Output for 5.6.0 - 5.6.40 , 7.0.0 - 7.0.33 , 7.1.0 - 7.1.33 , 7.2.0 - 7.2.33 , 7.3.0 - 7.3.33 , 7.4.0 - 7.4.33 , 8.0.0 - 8.0.30 , 8.1.0 - 8.1.28 , 8.2.0 - 8.2.18 , 8.3.0 - 8.3.4 , 8.3.6 array(1) {
[8]=>
array(5) {
[0]=>
int(9)
[1]=>
int(4)
[2]=>
string(10) "Esel 2.2.1"
[3]=>
int(3)
[4]=>
int(0)
}
}
Output for 8.3.5 Warning: PHP Startup: Unable to load dynamic library 'sodium.so' (tried: /usr/lib/php/8.3.5/modules/sodium.so (libsodium.so.23: cannot open shared object file: No such file or directory), /usr/lib/php/8.3.5/modules/sodium.so.so (/usr/lib/php/8.3.5/modules/sodium.so.so: cannot open shared object file: No such file or directory)) in Unknown on line 0
array(1) {
[8]=>
array(5) {
[0]=>
int(9)
[1]=>
int(4)
[2]=>
string(10) "Esel 2.2.1"
[3]=>
int(3)
[4]=>
int(0)
}
}
preferences:dark mode live preview
260.39 ms | 402 KiB | 291 Q