PHP foreach 函数在另一个 foreach 函数中


php foreach function inside another foreach function

<?php
        echo'<table border="1">';
        foreach (RetrieveSpecificSubMenu() as $value){
            echo "<tr>";
            echo'<td colspan="2">';
            echo "Sub Menu Details";
            echo'</td>';
            echo "</tr>";
            echo "<tr>";
            echo'<td>';
            echo "Sub Menu ID:";
            echo'</td>';
            echo'<td>';
            echo "<input readonly type='text' name='submenuid' value=" .$value['menuid']. " class='box required'/>";
            echo'</td>';
            echo "</tr>";
            echo "<tr>";
            echo'<td>';
            echo "Sub Menu Name:";
            echo'</td>';
            echo'<td>';
            echo "<input type='text' name='submenuname' value='" .htmlspecialchars($value['menuname'], ENT_QUOTES). "' class='box required'/>";
            echo'</td>';
            echo "</tr>";
            echo "<tr>";
            echo'<td>';
            echo "Parent Name:";
            echo'</td>';
            echo'<td>';
            echo "<input type='text' name='parentid' value='" .htmlspecialchars($value['parentid'], ENT_QUOTES). "' class='box required'/>";
            echo'<select name="submenuurl">';
                    echo"<option value='" .htmlspecialchars($value['parentid'], ENT_QUOTES). "'>".$value['menuurl']."</option>";
                    foreach (RetrieveAllMenuinDatabase() as $value){
                        echo "<option value='".$value['menuname']."'>".$value['menuname']."</option>";
                    }   
        echo'</select>';
            echo'</td>';
            echo "</tr>";
            echo "<tr>";
            echo'<td>';
            echo "Sub Menu Description:";
            echo'</td>';
            echo'<td>';
            echo "<input type='text' name='submenudescription' value='" .htmlspecialchars($value['menudescription'], ENT_QUOTES). "' class='box required'/>";
            echo'</td>';
            echo "</tr>";
            echo "<tr>";
            echo'<td>';
            echo "Sub Menu(Second Level):";
            echo'</td>';
            echo'<td>';
                if($value['menuflag']==="1"){
                    echo "<input id='remember' class='submenumanagementmenuflag' type='checkbox' name='submenuflag' value='" .$value['menuflag']. "' class='box required' checked='checked'/>"."Yes";
                }else{
                    echo "<input id='remember' class='submenumanagementmenuflag' type='checkbox' name='submenuflag' value='" .$value['menuflag']. "' class='box required' check''/>"."Yes";
                }
            echo'</td>';
            echo "</tr>";
            echo "<tr>";
            echo'<td>';
            echo "Display Order:";
            echo'</td>';
            echo'<td>';
            echo "<input  type='text' name='submenudisplayorder' value=" .$value['menudisplayorder']. " class='box required'/>";
            echo'</td>';
            echo "</tr>";
            echo "<tr class='submenumanagementurl'>";
            echo'<td>';
            echo "Menu Url:";
            echo'</td>';
            echo'<td>';
                echo'<select name="submenuurl">';
                    echo"<option value=" .$value['menuurl']. ">".$value['menuurl']."</option>";
                    foreach (RetrieveAllPages() as $value){
                        echo "<option value='".$value['Filename']."'>".$value['Filename']."</option>";
                    }   
        echo'</select>';
            echo'</td>';
            echo "</tr>";
        }   
        echo'</table>';
    ?>

这是工作代码,它从数据库中获取数据并向他们显示 sa echo 我有一个想法,将另一个函数放入其中,即

foreach (RetrieveAllMenuinDatabase() as $value){ echo "<option value='".$value['menuname']."'>".$value['menuname']."</option>"; }

将其放入代码后,找不到其余值,为什么会发生这种情况,我只想知道为什么,所以我可以找到如何解决它的想法。

仅供参考,内部foreach的输出是问题在于foreach后面的值都消失了,它得到错误,它说它是未定义的

你为什么要和PHP调情?

试试这个代码...

<?php
echo'<table border="1">';
foreach (RetrieveSpecificSubMenu() as $value) {
    echo "<tr>"
    . '<td colspan="2">'
    . "Sub Menu Details"
    . '</td>'
    . "</tr>"
    . "<tr>"
    . '<td>'
    . "Sub Menu ID:"
    . '</td>'
    . '<td>'
    . "<input readonly type='text' name='submenuid' value=" . $value['menuid'] . " class='box required'/>"
    . '</td>'
    . "</tr>"
    . "<tr>"
    . '<td>'
    . "Sub Menu Name:"
    . '</td>'
    . '<td>'
    . "<input type='text' name='submenuname' value='" . htmlspecialchars($value['menuname'], ENT_QUOTES) . "' class='box required'/>"
    . '</td>'
    . "</tr>"
    . "<tr>"
    . '<td>'
    . "Parent Name:"
    . '</td>'
    . '<td>'
    . "<input type='text' name='parentid' value='" . htmlspecialchars($value['parentid'], ENT_QUOTES) . "' class='box required'/>"
    . '<select name="submenuurl">'
    . "<option value='" . htmlspecialchars($value['parentid'], ENT_QUOTES) . "'>" . $value['menuurl'] . "</option>";
            foreach (RetrieveAllMenuinDatabase() as $AllMenu) {
                echo "<option value='" . $AllMenu['menuname'] . "'>" . $AllMenu['menuname'] . "</option>";
            }
    echo '</select>'
    . '</td>'
    . "</tr>"
    . "<tr>"
    . '<td>'
    . "Sub Menu Description:"
    . '</td>'
    . '<td>'
    . "<input type='text' name='submenudescription' value='" . htmlspecialchars($value['menudescription'], ENT_QUOTES) . "' class='box required'/>"
    . '</td>'
    . "</tr>"
    . "<tr>"
    . '<td>'
    . "Sub Menu(Second Level):"
    . '</td>'
    . '<td>';
    if ($value['menuflag'] === "1") {
        echo "<input id='remember' class='submenumanagementmenuflag' type='checkbox' name='submenuflag' value='" . $value['menuflag'] . "' class='box required' checked='checked'/>" . "Yes";
    } else {
        echo "<input id='remember' class='submenumanagementmenuflag' type='checkbox' name='submenuflag' value='" . $value['menuflag'] . "' class='box required' check''/>" . "Yes";
    }
    echo '</td>'
    . "</tr>"
    . "<tr>"
    . '<td>'
    . "Display Order:"
    . '</td>'
    . '<td>'
    . "<input  type='text' name='submenudisplayorder' value=" . $value['menudisplayorder'] . " class='box required'/>"
    . '</td>'
    . "</tr>"
    . "<tr class='submenumanagementurl'>"
    . '<td>'
    . "Menu Url:"
    . '</td>'
    . '<td>'
    . '<select name="submenuurl">'
    . "<option value=" . $value['menuurl'] . ">" . $value['menuurl'] . "</option>";
    foreach (RetrieveAllPages() as $AllPages) {
        echo "<option value='" . $AllPages['Filename'] . "'>" . $AllPages['Filename'] . "</option>";
    }
    echo'</select>'
    . '</td>'
    . "</tr>";
}
echo'</table>';
?>

在内部 foreach 外观中,您正在从外部 foreach :)覆盖$value变量