2011-12-12 3 views
1

다음 값을 사용하여 3 개의 값 중에서 가장 큰 정수를 찾습니다.3 세트에서 2 개의 가장 작은 정수 찾기

<?php 
$a = 100; 
$b = 200; 
$c = -300; 
$max = max($a,$b,$c); 
foreach(array('a','b','c') as $v) { 
    if ($$v == $max) { 
     echo "\$$v is $max and therefore the largest"; 
     break; 
    } 
} 
?> 

이 출력과 완벽하게 작동합니다 : $ B가 200이므로 가장 큰

그러나, 지금 출력도 그래서 3

에서이 개 작은 정수를 싶습니다 1 위를 보여주는 것뿐만 아니라 2 위를 출력 할 것입니다.

누군가 내가 이것을 어떻게 달성 할 수 있는지 보여 줄 수 있습니까?

모든 포인터에 대해 감사드립니다.

답변

1

하는 것입니다 매트 대답 설명 :

$list = array(2, 3, 1); 
sort($list); 

echo "Largest element : ".$list[count($list)-1]."\n"; 
echo "Two smallest elements :"; 

for($i=0; $i<2; $i++) { 
    echo $list[$i]." "; 
} 
+0

고맙습니다, 헤자드 :) – michaelmcgurk

2
  1. 는 목록
  2. sort
  3. 처음 두 요소를 가지고 목록에 세 개의 정수를 넣어 ->이 두 작은
  4. 마지막 요소가 가장 큰
+0

감사합니다. 답장을 감사하십시오. 나는 이것을 지금까지 가지고있다. $ nums = array (100,200, -300); sort ($ nums);'어떻게 처음 두 요소를 취할 수 있습니까? – michaelmcgurk

+1

@mcgarriers - 나는 단지 $ first = $ nums [0]을 할 것이다; $ ns = $ nums [1]; '라고 불리는 빠른 해결책입니다. 내가 당신을 위해 하위 목록을 가져 오는 함수가 있다고 가정하지만 PHP 전문가가 아니기 때문에 나는 그것이 무엇인지 알지 못합니다. 편집 :'array_slice'이 않습니다. –

+0

감사합니다. 다음과 같이 관리됩니다 :'$ nums = array (100,200, -300); sort ($ nums); foreach ($ nums는 $ key => $ val) { echo "nums [". $ 키. "] =". $ val. "\ n
"; }' – michaelmcgurk

1
$nums = array(100,200,-300); 
sort($nums); 
$twoSmallest = array_slice($sorted,0,2); 
$largest = array_slice($sorted,-1,1); 
1

나는 "sort it!"의 나머지 부분에 동의합니다. 군중. 여기에 포함 된 변수의 이름이 유지 완전한 예는, 그래서 결과는 귀하의 예제에서 하나 같다 : 매트, 이에 대한

function var_cmp($_a, $_b) { 
    global $$_a, $$_b; 
    return $$_b - $$_a; 
} 

$a = 100; 
$b = 200; 
$c = -300; 
$result = array('a', 'b', 'c'); 
usort($result, 'var_cmp'); 
printf('$%s is %d and largest, followed by $%s = %d and $%s = %d', 
     $result[0], ${$result[0]}, 
     $result[1], ${$result[1]}, 
     $result[2], ${$result[2]}); 
관련 문제