praegune kellaaeg 21.06.2025 14:30:30
|
Hinnavaatlus
:: Foorum
:: Uudised
:: Ärifoorumid
:: HV F1 ennustusvõistlus
:: Pangalink
:: Telekavad
:: HV toote otsing
|
|
autor |
|
mark11
HV vaatleja
liitunud: 28.01.2006
|
15.06.2008 14:27:22
elu ei õpeta, PHP probleem |
|
|
olen selle probleemiga kaua jamanud, mitte just probleem aga sattusin asja taha millest jagu ei saa mitte kuidagi
nimelt siis on klass
<?php
class tree_class {
private $nodes;
function __construct() {
$this->nodes = array ();
}
function add($row_ID, $subRow_ID = 0, $row_name = "", $row_position = 0) {
if (array_key_exists($row_ID, $this->nodes))
return 0;
$this->nodes[$row_ID] = array (
"subRow_ID" => $subRow_ID,
"row_name" => $row_name,
"row_position" => $row_position
);
return 1;
}
function iterate() {
foreach ($this->nodes as $rowID => $rowData) {
if ($rowData['subRow_ID'] == 0) {
// We have found one of the 'Root nodes'
// Lets start printing all that node has
echo "<b>".$rowData['row_name']."</b> <br>";
unset($this->nodes[$rowID]);
$this->print_f(0, 1,$rowID);
}
}
}
function print_f($node_ID, $node_LEVEL, $rowID) {
foreach($this->nodes as $rowIDx => $rowData) {
if($rowData['subRow_ID'] == 0) continue;
if($node_ID == 0) $node_ID = $rowID;
if($rowData['subRow_ID'] == $node_ID) {
echo str_repeat("-",$node_LEVEL)." ".$rowData['row_name']." <br>";
unset($this->nodes[$rowIDx]);
return $this->print_f($rowIDx, ++$node_LEVEL, $rowID);
}
}
unset($this->nodes[$node_ID]);
//return $this->print_f(0, 1, $rowID);
}
}
$hi = new tree_class();
$hi->add(1, 0, "Links", 0);
$hi->add(2, 1, "My home", 0);
$hi->add(3, 2, "Pictures of home", 0);
$hi->add(4, 1, "Munad", 0);
$hi->iterate();
?>
|
mida ma sooviksin oleks see,et tekiks niiöelda ilus LOOP mis skännib kõik läbi ja displayb kõik ilusasti järjest..
tulemus peaks olema selline:
Links
- My home
-- Pictures of my home
- Munad
ning ühesõnaga lõpmatu menüü.. saaks moodustada selliseid asju:
Links
- My home
-Pictures of my home
-Something cool
-ultracool things
- Munad
Hacking
-Cracking
-Tutorials
- Hook
|
|
Kommentaarid: 1 loe/lisa |
Kasutajad arvavad: |
   |
:: |
0 :: |
0 :: |
1 |
|
tagasi üles |
|
 |
linnumees
HV kasutaja
liitunud: 15.06.2005
|
|
Kommentaarid: 3 loe/lisa |
Kasutajad arvavad: |
   |
:: |
0 :: |
0 :: |
3 |
|
tagasi üles |
|
 |
m6mm
HV kasutaja
liitunud: 28.10.2003
|
15.06.2008 17:43:44
|
|
|
mark11, võiksid endale termini "rekursioon" selgeks teha.
function iterate($s = 1, $subRowID = 0)
{
for($i = 1; $i < sizeof($this->nodes) + 1; $i++)
{
if($this->nodes[$i]['subRow_ID'] == $subRowID)
{
$output .= str_repeat('-', $s) .' ' . $this->nodes[$i]['row_name'] . '<br>';
$output .= $this->iterate($s + 1, $i); // look for children only for this node
}//if
}//for i
return $output;
}//iterate
ning
echo $hi->iterate();
|
annab tulemuseks
- Links
-- My home
--- Pictures of home
-- Munad
|
lahenduse eest papp kanna siis pangaarvele
|
|
Kommentaarid: 35 loe/lisa |
Kasutajad arvavad: |
   |
:: |
0 :: |
0 :: |
34 |
|
tagasi üles |
|
 |
|
lisa lemmikuks |
|
|
sa ei või postitada uusi teemasid siia foorumisse sa ei või vastata selle foorumi teemadele sa ei või muuta oma postitusi selles foorumis sa ei või kustutada oma postitusi selles foorumis sa ei või vastata küsitlustele selles foorumis sa ei saa lisada manuseid selles foorumis sa võid manuseid alla laadida selles foorumis
|
|
Hinnavaatlus ei vastuta foorumis tehtud postituste eest.
|