foreach循环只返回数组中的一个项目

时间:2017-12-19 11:06:23

标签: php arrays foreach

我有一个数组,我循环使用每个循环它只返回第一次迭代,但如果我将其更改为echo它将所有这些打印到屏幕上,PHP的新手不知道为什么它这样做会尝试寻找得到答案但没有找到答案。以下代码:

    function getData($values){
        foreach ($values as $key => $value){
            return "<p>". $key . " " . $value ."</p></br>";

        }

    }

    $SubmitedResult->SerialisedForm = getData($data);

2 个答案:

答案 0 :(得分:2)

return总是退出函数并返回其参数。来自docs

  

如果在函数内调用,则return语句会立即结束当前函数的执行,并将其参数作为函数调用的值返回。

如果您不希望发生这种情况,请尝试附加到变量,并在完成追加后返回:

function getData ($values) {
    $form = '';
    foreach ($values as $key => $value) {
        $form .= "<p>". $key . " " . $value ."</p></br>";
    }
    return $form;
}

答案 1 :(得分:0)

循环迭代后返回。

function getData($values){
        $tags = [];
        foreach ($values as $key => $value){
            $tags[] =  "<p>". $key . " " . $value ."</p></br>";
       }

       return $tags;
}

    $SubmitedResult->SerialisedForm = getData($data);