PHP - 如何展开数组中的所有数组

时间:2017-01-06 22:10:32

标签: php arrays

当我尝试回显数组中的所有值时,我的代码发出错误,但是也扩展并回显原始数组中任何数组的值。

while (list($key, $val) = each($bal)) {
     If (is_array($val)){
          while (list($k, $v) = each($v)) { 
               If (is_array($va)){
                    while (list($ka, $va) = each($va)) {
                         echo "$ka => $va\n <br>";
                    }
               } else {
                    echo "$k => $v\n <br>";
               }
          }
     } else {
          echo "$key => $val\n <br>";
     }
}

我得到的错误是

  

警告:传递给each()的变量不是数组或对象   第234行的C:\ xampp2 \ htdocs \ money \ production \ simalgorithm1.php

第234行是while (list($k, $v) = each($v)) {

这不应该是一个数组,因为我检查了前一行吗?我的语法必须关闭我是一个相当新的PHP如果有人可以帮助我看到我没有看到我会非常感激。

2 个答案:

答案 0 :(得分:0)

问题在于这一行:

while (list($k, $v) = each($v)) {

我想你想要这个

while (list($k, $v) = each($val)) {

编辑:我还要指出,如果数组嵌套的层数超过几层,你的代码将无效。您应该考虑定义递归函数或使用var_exportvar_dump

答案 1 :(得分:0)

有时最简单的解决方案是解决的最佳单线问题。

的print_r($ BAL);