php продолжить "foreach" после возвращения - PullRequest
0 голосов
/ 04 декабря 2018

Я работаю над плагином WordPress для конкретной темы, но у меня общий вопрос:
У меня есть массив, и я хочу что-то сделать с каждым объектом и вернуть результат.
всеЭто нормально, но " foreach " работает только для первого объекта массива, и я думаю, что это из-за " return" , но по некоторым причинам я не могу использовать " echo"вместо 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;
} 

Я читал другие подобные темы, но передача переменной в другую функцию для выполнения задания" return "для меня также не работает

Ответы [ 2 ]

0 голосов
/ 04 декабря 2018

Ваше сомнение: «foreach» работает только для первого объекта массива, и я думаю, что это из-за «возврата»

Нет это не для return это из-за перезаписи переменных внутри цикла foreach() каждый раз.На самом деле вы не возвращаете только элемент first , здесь вы возвращаете элемент last , потому что вы перезаписываете переменную $user_field каждый раз в foreach() loop

Попробуйте вместо этого отправить результат на него, используя $user_field[], и тогда вы можете идти

$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;
0 голосов
/ 04 декабря 2018

Все функции работают до ключевого слова return.Вам нужно создать новый массив и добавить все отредактированные элементы к нему, а затем вернуть его.

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

Или вы даже можете работать с каждым полем прямо в цикле и ничего не возвращать.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...