PHP如果不知道索引,如何访问多维数组的所有元素?

PHP如果不知道索引,如何访问多维数组的所有元素?,php,multidimensional-array,foreach,Php,Multidimensional Array,Foreach,我在这里使用了代码的修改版本,从特定的文件列表创建了类和函数的多维数组。我最终得到的是这样的结果(我知道名称搞乱了,但我是在偷懒,不得不回去更改3个不同文件中的类名和函数名,所以让我们假设这些是合法的类名和函数名) 所以现在我需要能够访问每个类下的类名和函数名,而不知道它们的索引是什么。我尝试过循环、foreach,并使用$I和$ii等计数器通过数字索引访问它们,但除了垃圾或错误外,我尝试的任何东西都不会打印出来 我在想一些类似嵌入式foreach语句的东西 $i = 0; foreach($

我在这里使用了代码的修改版本,从特定的文件列表创建了类和函数的多维数组。我最终得到的是这样的结果(我知道名称搞乱了,但我是在偷懒,不得不回去更改3个不同文件中的类名和函数名,所以让我们假设这些是合法的类名和函数名)

所以现在我需要能够访问每个类下的类名和函数名,而不知道它们的索引是什么。我尝试过循环、foreach,并使用$I和$ii等计数器通过数字索引访问它们,但除了垃圾或错误外,我尝试的任何东西都不会打印出来

我在想一些类似嵌入式foreach语句的东西

$i = 0; 
foreach($array as $class){
  echo $class[$i];
  $ii = 0; 
  foreach($class as $val){
  echo $val[$ii];
  $ii++;
  }
$i++;
}
但那可不走运

还试图访问$array[$i][$i];或$array[$i][$ii];抛出错误错误错误偏移量0

我确信类数组索引实际上被命名为类名会有问题,但我想我仍然可以使用数字索引

基本上,我对如何访问数据以及如何使用正确方向的点完全感到困惑

我需要能够获取一个类名,然后获取该类下的所有函数名,并且需要能够通过从数组中检索它们,在整个程序的不同点访问它们

多谢各位

我讨厌在向别人求助几分钟后就回答自己的问题。我觉得我好像浪费了你的时间

你们说的对,但这是个棘手的问题。问这个问题有助于我自己了解我需要找到的东西,所以我明白了问题所在

此阵列有3个层。一个数组包含3个数组,每个数组的索引都有一个字符串而不是数字。每个元素都包含自己的元素

所以我必须遍历数组1,2,3,得到每个元素的字符串索引,然后使用字符串元素和数值元素,得到最里面数组的内部元素。好吧,这让我很困惑,但这里的代码为我工作,使用echo和一些轻微的格式,所以我可以看到它工作

$size = sizeof($objectList);
for($i = 0; $i < $size; $i++){
    foreach($objectList[$i] as $key => $val){
        $className = $key;
        echo $className . ": <br/>";
        foreach($objectList[$i][$className] as $val){
            $functionName = $val;
            echo $functionName . " , ";
        }
    echo "<br/><br/>";
    }
}
感谢您的帮助:-)

还允许您指定迭代器的关键部分,因此您可以通过关联数组进行循环,如下所示:

foreach($array as $key => $val){
    echo $array[$key]; // prints $val
}
因此,在你的情况下:

foreach($rootarray as $classarray){
    foreach($classarray as $classname => $functions){
        // $classname contains the name of the class
        foreach($functions as $functionname){
            // $functionname contains the name of the function
        }
    }
}

foreach
是你的朋友:

foreach($array as $key => $value) echo('$array['.$key.'] = '.$value);

谢谢马克,我编辑了我的问题来说明我是从哪里弄明白的,但基本上我最终得到了一些类似于你只在外部使用for循环的东西。我将尝试使用3个foreach循环,因为它看起来比我的好得多。很棒的马克!非常感谢。你的方法很好用,而且看起来比我的好。被一个小错误暂时弄糊涂了,在第二个foreach中,“$classarray”应该是第一个的$val。但非常感谢您的出色贡献:-)
foreach($rootarray as $classarray){
    foreach($classarray as $classname => $functions){
        // $classname contains the name of the class
        foreach($functions as $functionname){
            // $functionname contains the name of the function
        }
    }
}
foreach($array as $key => $value) echo('$array['.$key.'] = '.$value);