Php 按主控和辅控设置多维数组的样式

Php 按主控和辅控设置多维数组的样式,php,arrays,multidimensional-array,Php,Arrays,Multidimensional Array,我有以下问题。。。搔了几个小时的头后,我想不出来了。。 所以我们走吧。。。我以前使用过数组,但只是一个简单数组 $arr = array('1', '2', '3',[...]); 我可以处理这种数组,就在几天前我开始学习多维数组的。。。他们应该被称为多维噩梦。。。不管怎样,我有一个多维数组,按名称从SQL中排序。。。无论如何。。。该数组需要组织,感谢stackoverflow中一个名为Edakos的用户,我的数组通过主猫和它的子猫进行了组织。。。 我的数组现在看起来像这样 Array (

我有以下问题。。。搔了几个小时的头后,我想不出来了。。 所以我们走吧。。。我以前使用过数组,但只是一个简单数组

$arr = array('1', '2', '3',[...]);
我可以处理这种数组,就在几天前我开始学习多维数组的。。。他们应该被称为多维噩梦。。。不管怎样,我有一个多维数组,按名称从SQL中排序。。。无论如何。。。该数组需要组织,感谢stackoverflow中一个名为Edakos的用户,我的数组通过主猫和它的子猫进行了组织。。。 我的数组现在看起来像这样

 Array
(
    [10] => stdClass Object
        (
            [category_id] => 10
            [category_name] => Main Category
            [category_parent_id] => 0
            [category_child_id] => 10
            [children] => Array
                (
                    [196] => stdClass Object
                        (
                            [category_id] => 196
                            [category_name] => Sub Category 1
                            [category_parent_id] => 10
                            [category_child_id] => 196
                            [children] => Array
                                (
                                )

                        )
                    [198] => stdClass Object
                        (
                            [category_id] => 196
                            [category_name] => Sub Category 2
                            [category_parent_id] => 10
                            [category_child_id] => 198
                            [children] => Array
                                (
                                )

                        )
    [.....]
);
现在,我尝试设计这个数组的样式

foreach($tree as $cats => $info){
     echo '<span> ID: ' . $cats . '</span><br>';
        foreach($info as $k => $v){
            echo '<span style="margin-left:10px; color:red;">' . $v ['category_name'] . ' </span><br>';
        }
}
其中ID:是确定的主类别的ID。。。数据是主要类别的数据,例如ID、名称、父ID、子ID,这是主要的cat ID

数组看起来像这样

[10] => stdClass Object
            (
                [category_id] => 10
                [category_name] => Main Category
                [category_parent_id] => 0
                [category_child_id] => 10
                [children] => Array
                    (....
我的理解是[KEY]=>ARRAY KEY=>val,KEY=>val。。。儿子。。。直到数组中包含子类别的关键子项

因此,正如我在代码中所写:

foreach($info as $k => $v){
echo '<span style="margin-left:10px; color:red;">' . $v ['category_name'] . ' </span><br>';
            }
我必须注意,这是我第一次尝试使用多维数组,任何帮助都将不胜感激


感谢您花时间阅读此多维噩梦

首先,您迭代主数组,然后迭代子对象数组。这里处理的是对象,所以表示法是$object->variablename,而不是$array['variablename']

foreach ( $tree as $cats => info){
    echo '<span> cat: ' . $info->category_name. '</span><br>';

    foreach ($info->children as $child){
        echo '<span>' . $child->category_name . '</span>';
    }
}

谢谢你澄清,现在我明白了。。。谢谢你的例子
    foreach($info as $k => $v){
    echo '<span style="margin-left:10px; color:red;">' . $v ['category_name'] . ' </span>
         foreach ($k[children] as $sk => $sv){
    echo '<span style="margin-left:10px; color:green;">' . $sv ['category_name'] . ' </span>

}
<br>';
}
Main cat 1
   |_Sub Cat 2
   |_Sub Cat 4
   |_Sub Cat 6
Main Cat 2
   |_Sub Name 2
   |_Sub Names 3
[... and son ] ...
foreach ( $tree as $cats => info){
    echo '<span> cat: ' . $info->category_name. '</span><br>';

    foreach ($info->children as $child){
        echo '<span>' . $child->category_name . '</span>';
    }
}