ich hab eine function die sich immer wieder selbst aufruft. die abbruchbedingung funktioniert, bloß soll die function ein array zurück geben. aber die daten gehen beim verlassen der function verloren. bei einer anderen function gebe ich bloß ein eindimensionales array zurück, da funzt es.
mfg fitus
problem mit return bei zweidimensionalem array
Re: problem mit return bei zweidimensionalem array
hier mal mein ganzes skript
Code: Select all
<?php
include("conf.php");
$query = "SELECT * FROM it_groups WHERE parent_group = 0 ORDER BY sort ASC";
$dbh = mysql_connect($MySQL_Host, $MySQL_User, $MySQL_Passw);
mysql_select_db($MySQL_db, $dbh);
$acount = 0;
if ($query_id = mysql_query($query)) {
while ($line = mysql_fetch_array($query_id)) {
$acount++;
$db_group[$acount]["id"] = $line["id"];
$db_group[$acount]["parent_group"] = $line["parent_group"];
$db_group[$acount]["name"] = $line["name"];
$db_group[$acount]["sort"] = $line["sort"];
$db_group[$acount]["is_tutolist"] = $line["is_tutolist"];
}
}
$new_array = array();
$out_array = orderGroupArray($new_array, $db_group, 0);
echo $out_array[0]["name"];
for ($i=0; $i<sizeof($new_array); $i++) {
echo $out_array[$i]["name"] . "<br>";
}
//#################################################################################
function checkSubItems($id) {
include("conf.php");
$query = "SELECT COUNT(*) FROM it_groups WHERE parent_group = '$id'";
$dbh = mysql_connect($MySQL_Host, $MySQL_User, $MySQL_Passw);
$res = mysql_db_query($MySQL_db, $query);
$sub_items = mysql_result($res, 0, "COUNT(*)");
return ($sub_items);
}
//#################################################################################
function getSubItems($item_array, $id) {
include("conf.php");
$query = "SELECT * FROM it_groups WHERE parent_group = '$id' ORDER BY sort ASC";
$dbh = mysql_connect($MySQL_Host, $MySQL_User, $MySQL_Passw);
mysql_select_db($MySQL_db, $dbh);
if ($query_id = mysql_query($query)) {
while ($line = mysql_fetch_array($query_id)) {
array_push($item_array,
array("id" => $line["id"],
"parent_group" => $line["parent_group"],
"name" => $line["name"],
"sort" => $line["sort"],
"is_tutolist" => $line["is_tutolist"]
)
);
}
}
else {
echo mysql_error();
exit(1);
}
return $item_array;
}
//#################################################################################
function orderGroupArray($back_array, $source_array, $status) {
$status++;
array_push ($back_array,
array("id" => $source_array[$status]["id"],
"parent_group" => $source_array[$status]["parent_group"],
"name" => $source_array[$status]["name"],
"sort" => $source_array[$status]["sort"],
"is_tutolist" => $source_array[$status]["is_tutolist"]
)
);
if (checkSubItems($source_array[$status]["id"]) > 0) {
$back_array = getSubItems($back_array, $source_array[$status]["id"]);
}
if ($status < sizeof($source_array)) {
orderGroupArray($back_array, $source_array, $status);
}
elseif ($status >= sizeof($source_array)) {
return ($back_array);
}
}
?>
Re: problem mit return bei zweidimensionalem array
Code: Select all
$back_array = getSubItems($back_array, $source_array[$status]["id"]);
Re: problem mit return bei zweidimensionalem array
fällt dazu keinem was ein?