代码之家  ›  专栏  ›  技术社区  ›  Dipak

php如果数组有另一个数组

  •  1
  • Dipak  · 技术社区  · 6 年前

    看起来很奇怪。有没有办法检测到 array 包含 sub-array 在PHP中,这样 parent-child 概念在 css, jquery . 我只想在下列情况下插入数据 数组 subarray

    动态菜单

    <?php
        if(){ //loop starts
    ?>  
        <li>
            <input type="checkbox" name="menu[]" value="<?php echo $row['value']?>"> <?php echo $row['title'];
                <ul>
                    <?php
                        if(){ //loop starts
                    ?>
                    <li>
                        <input type="checkbox" name="submenu[]" value="<?php echo $row1['value']?>"><?php echo $row1['subtitle'];
                    </li>;
                    }?>
    
                </ul>
        </li>
    }?>
    

    产量

    <li>
        <input type="checkbox" name="menu[]" value="vehicle">
        <ul>
            <li><input type="checkbox" name="submenu[]" value="car"></li>
            <li><input type="checkbox" name="submenu[]" value="bike"></li>
         </ul>
    </li>
    <li><input type="checkbox" name="menu[]" value="sport"></li>
    

    上传文件

    $data = explode("," ,$_POST["menu"]); 
    $subdata = explode("," ,$_POST["submenu"]);
    foreach ($data AS $key => $menu){
        if(){         // This Menu has subarray
    
        }
    
    2 回复  |  直到 6 年前
        1
  •  1
  •   BrahmWeb    6 年前

    在你的情况下,你必须用下面的方法

    <li>
            <input type="checkbox" name="menu[0][]" value="vehicle">
            <ul>
                <li><input type="checkbox" name="submenu[0][]" value="car"></li>
                <li><input type="checkbox" name="submenu[0][]" value="bike"></li>
             </ul>
        </li>
        <li><input type="checkbox" name="menu[1][]" value="sport"></li>
            <ul>
                <li><input type="checkbox" name="submenu[1][]" value="cricket"></li>
                <li><input type="checkbox" name="submenu[1][]" value="football"</li>
             </ul>
    

    然后从后台,你可以

    foreach($_POST['menu'] as $key=>$val) {
            if(is_array($val) && count($val)) {
               //do action
            }
    }
    
        2
  •  3
  •   Script47    6 年前

    你可以使用 is_array 函数查看变量是否为数组,如果要递归检查,则可以使用 array_walk_recursive 具有 ISSL数组 作为回拨。

    注: 如果你使用 数组遍历递归 ,它将对非数组的项运行回调,因此您可以比较从 数组遍历递归 与原始数组进行比较,找出所有属于数组的项。然而, ISSL数组 似乎更容易选择。

    活生生的例子

    Repl