PHP返回后继续“ foreach”

时间:2018-12-04 16:34:12

标签: php wordpress foreach

我正在针对特定主题开发 WordPress 插件,但是有一个普遍的问题,
我有一个数组,想要对每个对象做一些事情并返回结果。
一切都很好,但是“ foreach ”仅适用于数组的第一个对象,我认为是因为“ return” ,但是由于某些原因,我无法使用“ 回声”,而不是返回。
这是我的代码:

    $cast_list = array(
        "composite_cast",
        "graphic_designer_cast",
        "product_manager_cast",
        "render_cast",
        "the3d_cast",
        "story_board_cast"
    );

    foreach ($cast_list as $value)
    {
        $user_field = get_field($value);    
    }

    return $user_field;
} 

我已经阅读了其他类似的主题,但是将变量传递给另一个函数来替我完成“返回”工作

2 个答案:

答案 0 :(得分:1)

您的疑问:“ foreach”仅适用于数组的第一个对象,我认为它是因为“返回”的原因

这不是return的原因,这是因为每次foreach()循环内都会覆盖变量。实际上,您并不是只返回 first 元素,而是返回 last 元素,因为每次{{1 }}循环

尝试使用$user_field将结果推送到它,那么您很好

foreach()

答案 1 :(得分:0)

所有功能都可以使用,直到return关键字为止。您需要创建一个新数组,并将所有已编辑的元素附加到该数组,然后将其返回。

$user_fields = array();
foreach ($cast_list as $value)
{
    array_push($user_fields, get_field($value));
}
return $user_fields;

或者您甚至可以在循环中的每个 field 上工作,什么也不返回。