<?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_msort($array, $cols)
{
$colarr = array();
foreach ($cols as $col => $order) {
$colarr[$col] = array();
foreach ($array as $k => $row) { $colarr[$col]['_'.$k] = strtolower($row[$col]); }
}
$eval = 'array_multisort(';
foreach ($cols as $col => $order) {
$eval .= '$colarr[\''.$col.'\'],'.$order.',';
}
$eval = substr($eval,0,-1).');';
eval($eval);
$ret = array();
foreach ($colarr as $col => $arr) {
foreach ($arr as $k => $v) {
$k = substr($k,1);
if (!isset($ret[$k])) $ret[$k] = $array[$k];
$ret[$k][$col] = $array[$k][$col];
}
}
return $ret;
}
function listItems($items, $level=0, $child=false, $pid=0) {
array_msort($items, array(4 => SORT_DESC));
$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 git.master, git.master_jit, rfc.property-hooks
- bool(false)
<ul></ul>
This tab shows result from various feature-branches currently under review by the php developers. Contact me to have additional branches featured.
Active branches
Archived branches
Once feature-branches are merged or declined, they are no longer available. Their functionality (when merged) can be viewed from the main output page
preferences:
67.66 ms | 401 KiB | 8 Q