php 如果数组有另一个数组

php if array has another array

看起来很奇怪。有什么方法可以检测到 array 在 php 中包含 sub-array,例如 css, jquery 中的 parent-child 概念。我只想在 arraysubarray

时插入数据

动态菜单

<?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>

upload.php

$data = explode("," ,$_POST["menu"]); 
$subdata = explode("," ,$_POST["submenu"]);
foreach ($data AS $key => $menu){
    if(){         // This Menu has subarray

    }

您可以使用 is_array function to see if a variable is an array, if you want to recursively check then you can use array_walk_recursive with is_array 作为回调。

注意:如果你使用array_walk_recursive,它会运行回调非数组的项目,所以你可以比较返回的项目from array_walk_recursive 对原始数组找出所有那些是数组的项目。但是,is_array 似乎是更简单的选择。

实例

Repl

在您的情况下,您必须使用以下方法轻松完成

<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
        }
}