我有一个带有以下示例的对象的PHP数组:

Array
(
[0] => Array
    (
        [menuID] => 1
        [menuName] => AA
        [menuURL] => 
        [subMenu] => Array
            (
                [0] => Array
                    (
                        [subMenuID] => 1
                        [subMenuName] => Sub 1
                        [subMenuURL] => ab
                    )

                [1] => Array
                    (
                        [subMenuID] => 2
                        [subMenuName] => Sub 2
                        [subMenuURL] => ac
                    )

            )

    )

[1] => Array
    (
        [menuID] => 2
        [menuName] => AB
        [menuURL] => 
        [subMenu] => 
    )

)

现在我需要计算和访问subMenu中的数组,但在那里得到了奇怪的值.

我用的是这个代码:

foreach ($headerMenu as $list) {
    //print_r($list['menuName']);

    echo "<pre>";
    print_r(count($list['subMenu']));
}

它向我显示结果21.正如您在上面的样例数组中看到的,它应该为菜单ID 1显示2,为菜单ID 2显示0.

有没有办法解决这个问题?

推荐答案

我不确定这个错误,但我只是更改了语法,并在WAMP中try 了一下,它确实打印了2和0.

<?php
$headerMenu = array(
    array(
        'menuID' => 1,
        'menuName' => 'AA',
        'menuURL' => '',
        'subMenu' => array(
            array(
                'subMenuID' => 1,
                'subMenuName' => 'Sub 1',
                'subMenuURL' => 'ab'
            ),
            array(
                'subMenuID' => 2,
                'subMenuName' => 'Sub 2',
                'subMenuURL' => 'ac'
            )
        )
    ),
    array(
        'menuID' => 2,
        'menuName' => 'AB',
        'menuURL' => '',
        'subMenu' => array()
    )
);

foreach ($headerMenu as $list) {
    echo "<pre>";
    print_r(count($list['subMenu']));
}
?>

Php相关问答推荐

419注册期间Laravel 11中的错误

从WooCommerce邮箱通知中的订单详细信息中删除产品列表

如何在函数中定位WooCommerce产品循环

在WooCommerce产品变体SKU字段旁边添加自定义输入字段

在AJAX请求后,Laravel重定向.(不允许使用方法)

基于不用于变体的产品属性隐藏多个WooCommerce发货方式

在PHP中读取JSON

将数据推入所有子数组条目

未检测到laravel控制器

我不明白为什么我收到未定义的数组键异常错误 - Laravel 9 PHP 8

根据所选付款方式启用/禁用 WooCommerce 所需的 checkout 字段

我的功能以舒适的方式显示数组 struct

URL中包含"&"与DirectoryIterator不兼容

PHP Symfony 在测试.env文件中将接口自动装配作为构造函数参数,但使用接口的特定类

设置GA4 PHP API的setSubject以允许访问所有管理员账户属性

.htaccess环境变量条件不被判断

Woocommerce API 的 PHP Curl 附加参数

在 Symfony 测试中何时使用 TestCase 而不是 KernelTestCase

Xdebug 不会在断点处停止

如何在 Laravel 中验证多个输入?