<?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();
$target = array(
array(9,4,'Esel 2.2.1', 3, 0),
);
var_dump($result == $target);
$navitems = array(
array(
1, // Menuid
3, // parentid
'Wurm 1.1', // title
2, // level
10 // sortid
),
array(
2, // Menuid
6, // parentid
'Vogel 2.1', // title
2, // level
30 // sortid
),
array(
3, // Menuid
0, // parentid
'Tiger 1', // title
1, // level
10 // sortid
),
array(
4, // Menuid
6, // parentid
'Hund 2.2', // title
2, // level
40 // sortid
),
array(
5, // Menuid
3, // parentid
'Katze 1.2', // title
2, // level
11 // sortid
),
array(
6, // Menuid
0, // parentid
'Pferd 2', // title
1, // level
20 // sortid
),
array(
7, // Menuid
1, // parentid
'Baer 1.1.1', // title
3, // level
0 // sortid
),
array(
8, // Menuid
3, // parentid
'Schwein 1.3', // title
2, // level
12 // sortid
),
array(
9, // Menuid
4, // parentid
'Esel 2.2.1', // title
3, // level
0 // sortid
)
);
function array_orderby()
{
$args = func_get_args();
$data = array_shift($args);
foreach ($args as $n => $field) {
if (is_string($field)) {
$tmp = array();
foreach ($data as $key => $row)
$tmp[$key] = $row[$field];
$args[$n] = $tmp;
}
}
$args[] = &$data;
call_user_func_array('array_multisort', $args);
return array_pop($args);
}
function listItems($items, $level=0, $child=false, $pid=0) {
array_orderby($items, '4');
$rest = '';
foreach($items as $item) {
if ($item[3] != $level) {
continue;
}
if ($child == false) {
$rest .= '<li>'. $item[2] .'<ul>'. listItems($items, $level+1, true, $item[0]) .'</ul></li>';
} else {
if ($pid == $item[1]) {
$rest .= '<li>'. $item[2] .'<ul>'. listItems($items, $level+1, true, $item[0]) .'</ul></li>';
}
}
}
return '<ul>' . $rest . '</ul>';
}
echo listItems($navitems);
- Output for 4.3.0 - 4.3.11, 4.4.0 - 4.4.9, 5.0.0 - 5.0.5, 5.1.0 - 5.1.6, 5.2.0 - 5.2.17, 5.3.4 - 5.3.29, 5.4.0 - 5.4.45, 5.5.0 - 5.5.38, 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.6
- bool(false)
<ul></ul>
- Output for 5.3.0 - 5.3.3
- bool(false)
Warning: Parameter 1 to array_multisort() expected to be a reference, value given in /in/gNKTP on line 109
<ul></ul>
preferences:
221.67 ms | 401 KiB | 459 Q