Php 创建第三级foreach并循环数组并将其保存到数据中?

Php 创建第三级foreach并循环数组并将其保存到数据中?,php,arrays,sorting,module,opencart,Php,Arrays,Sorting,Module,Opencart,我正在使用opencart 1.5.6.4。我已经创建了一个模块 <?php $module_row = 1; ?> <?php foreach ($modules as $module) { ?> <?php $element = 1; ?> <?php if(isset($module['tabs'])) { foreach($module['tabs'] as $tab) { ?> <?php $elements = 1; ?>

我正在使用opencart 1.5.6.4。我已经创建了一个模块

<?php $module_row = 1; ?>
<?php foreach ($modules as $module) { ?>

<?php $element = 1; ?>
<?php if(isset($module['tabs'])) { foreach($module['tabs'] as $tab) { ?>

<?php $elements = 1; ?>
<?php if(isset($tab['styles'])) { foreach($tab['styles'] as $style) {  ?>

<?php $elements++; } }  ?>

<?php $element++; }  } ?>

<?php $module_row++; } ?>

但第三级不工作并已保存

<?php $elements = 1; ?>
    <?php if(isset($tab['styles'])) { foreach($tab['styles'] as $style) {  ?>

当我把它改成

<?php $elements = 1; ?>
        <?php foreach($tab as $style) { if ($style > 0) {  ?>

工作不正常


正确的解决方案是什么?

您确实需要回去学习基础知识。使用适当的缩进,检查数组和变量的值等

实际上,很难理解您的问题,最后给出的两行代码甚至没有使用相同的变量名。对于任何试图合理地帮助您的人来说,他们需要在上下文中看到代码中不起作用的部分

所有的话,这里有一种方法,你可以把上面提到的内容格式化,我建议你仔细研究并考虑如果你有继续写PHP的意图:

<?php

$module_row = 1; 
foreach ($modules as $module) { 
    $element = 1;
    if (isset($module['tabs'])) {
        foreach($module['tabs'] as $tab) { 
            $elements = 1; 
            if (isset($tab['styles'])) {
                foreach($tab['styles'] as $style) {  
                    $elements++;
                }
            }  
            $element++;
        }
    } 
$module_row++;

?>


你到底为什么要在每一行上打开和关闭PHP?读起来很混乱,尤其是结束语块。您使用了混合匹配括号
{
/
}
。您有4个打开的
{
,但有6个关闭的
}
。看起来在
if(isset($tab['styles'])
之后需要1,并删除
$module_row++之后的第二个确定我更新代码。如果(isset($tab['styles']){我会更新,但不起作用。可能与我所说的opencart兼容性和模块重复…没有完整的php。