如何将foreach循环与多维数组一起使用


How to use a foreach loop with a multidimensional array?

我有一个多维数组,有一个foreach循环,但不知道如何在不使用print_r的情况下回显所有值。如果我在foreach循环之外echo $array[0][0];,对于第一个结果,我确实会得到一个结果。

我看过其他例子,但除了print_r之外,没有其他例子显示结果,而且它们往往只执行单个数组,而不是多维数组。

我看到过这个foreach循环,它似乎可以工作,但只有当我尝试在foreach循环中执行echo $new_array时,我才会出现错误。在这种情况下,我该如何使用它?

foreach($array as $key=>$val) {
  $new_array[] = $val['key'];
}

print_r 的数组结果

[0] => Array
    (
        [0] => 2
        [audit_inspectionID] => 10
        [1] => 2015-08-12
        [created] => 2015-08-12
        [2] => 2016-08-11 16:26:22
        [modified] => 2016-08-11 16:26:22
        [class_answer] => Array
            (
                [0] => Needs Improvement     
                [1] => Need To Correct     
                [2] => Needs Immediate Action     
            )
     )
[1] => Array
    (
        [0] => 12
        [audit_inspectionID] => 12
        [1] => 2016-08-12
        [created] => 2016-08-12
        [2] => 2016-08-11 16:26:22
        [modified] => 2016-08-11 16:26:22
        [class_answer] => Array
            (
                [0] => Needs Improvement     
                [1] => Need To Correct     
                [2] => Needs Immediate Action     
            )
     )

我真的不确定你在问什么,但如果你想要打印出所有键和值的东西(以什么格式?你没有指定(,而不管数组嵌套在一起,你可以做这样的事情:

function arrayToString(array $array)
{
    $out = "";
    foreach ($array as $key => $value) {
        if (is_array($value)) {
            $out .= "$key => (" . arrayToString($value) . "), ";
        } else {
            $out .= "$key => $value, ";
        }
    }
    return $out;
}

你可以使用echo arrayToString($myArray),其中$myArray是你想要回显的数组-它会留下尾随逗号,但我相信你可以修改它来做你需要的事情,这应该会让你知道如何进行。

这就是你想要的东西吗?我真的不明白这有什么意义,但希望这能帮助你。