2014-02-13 2 views
0

이것은 홀수에서 짝수까지 정수 배열을 나눠 넣기위한 단순한 스크립트입니다.하지만 두 개의 다른 배열을 출력하려고하면 아무것도 출력되지 않습니다. 여기에 예를 들어, 내 코드입니다 :왜 내 함수가 리턴 배열을 반향 출력하지 않을까요?

<?php 
$ints = [1, 2, 3, 4]; 
function getEvens($evens){ 
    $even_array = null; 
    $odd_array = null; 
    foreach ($evens as $value){ 
     if ($value/2 == 0) { 
      $even_array = array($value); 

     } 
     else { 
      $odd_array = array($value); 

     } 

    } 
    return $even_array; 
    return $odd_array; 

} 
echo getEvens($ints); 
?> 
+1

첫 번째 'return'이 수행 될 것이다 ....'return'는 –

+1

'echo' 배열의 값을 표시 할 것이다 호출 코드에 대한 함수 코드를 실행하고 리턴 종료하지만 word'Array' .... 개별 값을 반향하는 배열을 반복하거나; 또는 에코 될 수있는 문자열로 배열을'implode '합니다. –

답변

1

를 얻을 수 있습니다, 그래서 당신은 단지 하나의 return을 가질 수있다 문 - 첫 번째 return에 도달하면 함수가 끝나기 때문에 두 번째 return이 실행되지 않습니다. 배열에 에코가 발생하면 print_r() 또는 var_dump()을 사용해야합니다.

또한 올바르지 않은 연산자를 사용하여 무엇인가가 홀수인지 또는 짝수인지를 판단합니다. modulus을 사용하십시오.

마지막으로 값을 추가하는 대신 배열을 다시 초기화합니다.

$ints = [1, 2, 3, 4]; 
function getEvens($evens){ 
    $even_array = array(); 
    $odd_array = array(); 
    foreach ($evens as $value){ 
     if ($value % 2 == 0) { 
      $even_array[] = $value; 

     } 
     else { 
      $odd_array[] = $value; 

     } 

    } 
    return array('even' => $even_array, 'odd' => $odd_array); 

} 

var_dump(getEvens($ints)); 

을 그리고 마지막으로, 위에서 당신의 결과는 다음과 같습니다 :이 시도

Array 
(
    [even] => Array 
     (
      [0] => 2 
      [1] => 4 
     ) 

    [odd] => Array 
     (
      [0] => 1 
      [1] => 3 
     ) 

) 
3
if ($value/2 == 0) { 

$value/2 $ 값이

0/2 = 0 
1/2 = 0.5 
2/2 = 1 
etc 

0은 무슨 뜻이면 오직 0이됩니다

if ($value % 2 == 0) { 

편집

할당 된 값 4,

는 항상 replace $ even_array을, 당신은 오직 마지막 결과

0

변경 %에 운영자 ...

$value =0 then only the result is 0 
1

다음과 같이하십시오. 코드의 주석을 읽으십시오.

$ints = [1, 2, 3, 4]; 
function getEvens($evens){ 
    $even_array = array(); //Declare arrays as array() instead of null 
    $odd_array = array(); 
    foreach ($evens as $value){ 
     if ($value % 2 == 0) { //Use modulo to detect if it is even or odd 
      $even_array[] = $value; // Use [] to add value to array 

     } 
     else { 
      $odd_array[] = $value; 

     } 

    } 

    //You can only return 1 element, So combine them in one array 
    return array(
     'even' => $even_array; 
     'odd' => $odd_array 
    ); 

} 
echo '<pre>'; 
print_r(getEvens($ints)); 
echo '</pre>'; 
0

찾고 계십니까?

<?php 
$ints = array(1,2,3,4); 

function getEvens($evens){ 
    $even_array = null; 
    $odd_array = null; 

    foreach ($evens as $value){ 

     if ($value % 2 == 0) 
     { 
      $return_evn_array[] = array($value); 

     } 
     else 
     { 
      $return_odd_array[] = array($value); 

     } 

    } 
    return array('evn_array' => $return_evn_array, 'odd_array' =>$return_odd_array); 

} 
echo '<pre>'; 
print_r(getEvens($ints)); 
echo '</pre>'; 
?> 
관련 문제