2013-06-04 140 views
0

我寫了下面的函數來處理數組,但它並沒有返回我1想到它的輸出$ input [0]返回我1.不明白爲什麼它返回NULL。任何我在這種情況下返回的是返回NULL。如果有人知道,請解釋我。謝謝。直到你的數組數爲1。因爲你的return語句是if爲什麼下面的函數返回null而不是1?

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; 
+10

變化'endWithNumber($輸入);''來回報endWithNumber($輸入);' – Yoshi

+0

這是什麼代碼應該完成什麼呢?我相信有更多優雅的解決方案。 – deceze

+1

你爲什麼用===計數? –

回答

0

你的函數返回什麼。

<?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; 
?> 
相關問題