我已经写了下面的函数来处理一个数组,但是它没有返回我,尽管它是输出$input,返回我1。我不明白为什么它是返回NULL。在那个条件下,我返回的任何东西都是返回NULL。如果有人知道请给我解释一下。谢谢。
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;发布于 2013-06-04 18:42:18
您的函数在数组计数为1之前不会返回任何内容。因为您的return语句位于if块中。
<?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;
?>https://stackoverflow.com/questions/16915641
复制相似问题