首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >为什么下面的函数返回null而不是1?

为什么下面的函数返回null而不是1?
EN

Stack Overflow用户
提问于 2013-06-04 18:36:27
回答 1查看 91关注 0票数 0

我已经写了下面的函数来处理一个数组,但是它没有返回我,尽管它是输出$input,返回我1。我不明白为什么它是返回NULL。在那个条件下,我返回的任何东西都是返回NULL。如果有人知道请给我解释一下。谢谢。

代码语言:javascript
复制
function endWithNumber($input)
{
    if (count(array_unique($input)) === 1) {        
        return $input[0];       
    }
    $maxVal = max($input);
    $maxKey = array_search($maxVal,$input);

    foreach ($input as $k => $v) {
        if ($maxKey != $k && $maxVal != $v) {
            $newVal  = ($maxVal - $v);
            $input[$maxKey] = $newVal;
            break;
        }
    }

    endWithNumber($input);
}

$input = array(6,10,15);  
var_dump(endWithNumber($input));
exit;
EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2013-06-04 18:42:18

您的函数在数组计数为1之前不会返回任何内容。因为您的return语句位于if块中。

代码语言:javascript
复制
<?php
function endWithNumber($input)
{
    if (count(array_unique($input)) == 1) 
        return $input[0];       

    $maxVal = max($input);
    $maxKey = array_search($maxVal,$input);

    foreach ($input as $k => $v) 
    {
        if ($maxKey != $k && $maxVal != $v) 
        {
            $newVal  = ($maxVal - $v);
            $input[$maxKey] = $newVal;
            break;
        }
    }   

    return endWithNumber($input);
}

$input = array(6,10,15);  
var_dump(endWithNumber($input));

exit;   
?>
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/16915641

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档