Mailinglisten-Archive |
Hi Liste.
hier ist mal mein array ansatz..nicht besonders profi mäßig schätz ich, da
ich dieses problem zum ersten mal gemacht hab und absolut keine ahnung hab
wie ich wo was machen könnte noch :D.
Verbesserungen sind sehr sehr gerne erwünscht.
PHP:
<?
$res = $DB->query("SELECT * FROM layers");
while ($obj = $DB->fetch_object($res) ) {
$data[$obj->id] = array(
"id"=>$obj->id,
"name"=>$obj->name,
"refID"=>$obj->refID,
"actastopic"=>$obj->topic);
}
function renderLayer($parentID) {
global $data;
if ($res = my_array_search($data,"refID",$parentID)) {
foreach ($res AS $index) {
echo $data[$index][name]."<br>\n";
renderLayer($index);
// hier wird die Funktion renderLayer rekursiv aufgerufen
// um alle Seiten anzuzeigen, die die gerade ausgegebene
// Seite als Parent haben.
}
}
}
function my_array_search($array,$field,$needle) {
// $field wird deklariert um keine verwechslung mit der ID
hervorzurufen
for ($i = 1; $i<=count($array);$i++) {
$tmparray = $array[$i];
if ($tmparray[$field] == $needle) {
$key = $i;
$c = count($returnarray);
$c++;
$returnarray[$c] = $key;
}
}
if (count($returnarray) >= 1) {
return ($returnarray);
}
return (false);
}
renderLayer(0);
?>
hoffe alles ist verständlich und ich hoffe ich konnte helfen :D
so long
david
php::bar PHP Wiki - Listenarchive