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

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了foreach循环只返回数组中的一个项目相关的知识,希望对你有一定的参考价值。

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

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

        }

    }

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

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

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

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

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

循环后返回迭代。

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

       return $tags;
}

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

以上是关于foreach循环只返回数组中的一个项目的主要内容,如果未能解决你的问题,请参考以下文章

foreach 循环仅输出数组中的最后一个元素

php foreach输出数组只输出元素的第一个字符

完成foreach循环后如何在节点js中返回推送的数组响应?

foreach 循环重复数组中的最后一项

返回所有带有 ACF 字段和 foreach 循环的数组值

php中foreach循环遍历二维数组