如何使用带有多维数组的foreach循环?

时间:2016-08-12 22:35:05

标签: php arrays multidimensional-array foreach

我有一个多维数组,我得到了一个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     
            )
     )

1 个答案:

答案 0 :(得分:0)

我不确定你问的是什么,但如果你想要的东西会打印出所有的键和值(用什么格式?你没有指定),不管数组是什么彼此嵌套你可以做类似的事情:

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是你要回应的数组 - 它会留下尾随的逗号,但我确定你可以修改它来做你需要的事情来,这应该让你知道如何去做。

这是你想要的那种吗?我真的没有看到这一点,但希望这可以帮助你。