PHP警告帮助?

0 php

我在第3行继续收到以下警告.

Warning: Invalid argument supplied for foreach()
Run Code Online (Sandbox Code Playgroud)

这是php代码.

    function dyn_menu($parent_array, $sub_array, $qs_val = "menu", $main_id = "nav", $sub_id = "subnav", $extra_style = "foldout") {
        $menu = "<ul id=\"".$main_id."\">\n";
        foreach ($parent_array as $pkey => $pval) {
            if (!empty($pval['count'])) {
                $menu .= "  <li><a class=\"".$extra_style."\" href=\"".$pval['link']."?".$qs_val."=".$pkey."\">".$pval['label']."</a></li>\n";
            } else {
                $menu .= "  <li><a href=\"".$pval['link']."\">".$pval['label']."</a></li>\n";
            }
            if (!empty($_REQUEST[$qs_val])) {
                $menu .= "<ul id=\"".$sub_id."\">\n";
                foreach ($sub_array as $sval) {
                    if ($pkey == $_REQUEST[$qs_val] && $pkey == $sval['parent']) {
                        $menu .= "<li><a href=\"".rebuild_link($sval['link'], $qs_val, $sval['parent'])."\">".$sval['label']."</a></li>\n";
                    }
                }
                $menu .= "</ul>\n";
            }
        }
        $menu .= "</ul>\n";
        return $menu;
}
Run Code Online (Sandbox Code Playgroud)

这是我正在处理的整个代码.

$mysqli = new mysqli("localhost", "root", "", "sitename");
$dbc = mysqli_query($mysqli,"SELECT id, label, link_url, parent_id FROM dyn_menu ORDER BY parent_id, id ASC");

if (!$dbc) {
    // There was an error...do something about it here...
    print mysqli_error();
}

while ($obj = mysqli_fetch_assoc($dbc)) {
    if (empty($obj['parent_id'])) {
        echo $parent_menu . $obj['id']['label'] = $obj['label'];
        echo $parent_menu . $obj['id']['link'] = $obj['link_url'];
    } else {
        echo $sub_menu . $obj['id']['parent'] = $obj['parent_id'];
        echo $sub_menu . $obj['id']['label'] = $obj['label'];
        echo $sub_menu . $obj['id']['link'] = $obj['link_url'];
        echo $parent_menu . $obj['parent_id']++;
    }
}
mysqli_free_result($dbc);




    function dyn_menu($parent_array, $sub_array, $qs_val = "menu", $main_id = "nav", $sub_id = "subnav", $extra_style = "foldout") {
        $menu = "<ul id=\"".$main_id."\">\n";
        foreach ($parent_array as $pkey => $pval) {
            if (!empty($pval['count'])) {
                $menu .= "  <li><a class=\"".$extra_style."\" href=\"".$pval['link']."?".$qs_val."=".$pkey."\">".$pval['label']."</a></li>\n";
            } else {
                $menu .= "  <li><a href=\"".$pval['link']."\">".$pval['label']."</a></li>\n";
            }
            if (!empty($_REQUEST[$qs_val])) {
                $menu .= "<ul id=\"".$sub_id."\">\n";
                foreach ($sub_array as $sval) {
                    if ($pkey == $_REQUEST[$qs_val] && $pkey == $sval['parent']) {
                        $menu .= "<li><a href=\"".rebuild_link($sval['link'], $qs_val, $sval['parent'])."\">".$sval['label']."</a></li>\n";
                    }
                }
                $menu .= "</ul>\n";
            }
        }
        $menu .= "</ul>\n";
        return $menu;
}


function rebuild_link($link, $parent_var, $parent_val) {
    $link_parts = explode("?", $link);
    $base_var = "?".$parent_var."=".$parent_val;
    if (!empty($link_parts[1])) {
        $link_parts[1] = str_replace("&amp;", "##", $link_parts[1]);
        $parts = explode("##", $link_parts[1]);
        $newParts = array();
        foreach ($parts as $val) {
            $val_parts = explode("=", $val);
            if ($val_parts[0] != $parent_var) {
                array_push($newParts, $val);
            }
        }
        if (count($newParts) != 0) {
            $qs = "&amp;".implode("&amp;", $newParts);
        }
        return $link_parts[0].$base_var.$qs;
    } else {
        return $link_parts[0].$base_var;
    }
}

echo dyn_menu($parent_menu, $sub_menu, "menu", "nav", "subnav");
Run Code Online (Sandbox Code Playgroud)

Pow*_*ord 5

它告诉你这$parent_array不是一个数组.

如果您发布调用此函数的代码,我们可以告诉您更多.