Php - Foreach返回一个值,第一个或最后一个

时间:2016-02-12 11:50:31

标签: php function foreach

如果我在我的函数中使用return,我将只获得一个值。

如果我使用echo,我会获得所有值。我不明白。

foreach($matches[0] as $matchbun)
{

        $var1 = str_split($matchbun, 34);
        $replace_line = "-";
        $var_final = str_replace($replace_line, " ", $var1[1]);

        $replace_url = array('google.com', '/name/');
        $replace_url_with = array('yahoo.com', '/url_');
        $url_final = str_replace($replace_url, $replace_url_with, $matchbun);



        return ''.ucfirst($url_final).'';

}

似乎我无法将回声插入数据库,如果我运行该功能,它们会显示为空白。 怎么办?

3 个答案:

答案 0 :(得分:4)

如果您有return,则代码将无法执行。生成整个数据,然后return该数据。

您可以构建一个数组。喜欢 -

$urls= array();
foreach($matches[0] as $matchbun)
{
    .....
    $urls[]= ucfirst($url_final);
}
return $urls;

或者您可以生成一个字符串。喜欢 -

$urls= '';
foreach($matches[0] as $matchbun)
{
    .....
    $urls.= ucfirst($url_final);
}
return $urls;

答案 1 :(得分:0)

好吧,如果你使用return,你将在第一次迭代时退出该函数。 如果使用echo,则不会退出该函数,而是回显foreach循环的每次迭代。

答案 2 :(得分:0)

退出循环。并将要返回的数据放入变量中。像这样:

foreach($matches[0] as $matchbun)
  {

    $var1 = str_split($matchbun, 34);
    $replace_line = "-";
    $var_final = str_replace($replace_line, " ", $var1[1]);

    $replace_url = array('google.com', '/name/');
    $replace_url_with = array('yahoo.com', '/url_');
    $url_final = str_replace($replace_url, $replace_url_with, $matchbun);
    $myNewVariable .= $url_final;
  }

    return $myNewVariable;