2012-05-09 3 views
4

숫자 값을 기준으로 특정 필드 (OurPrice)에 대해 가장 낮은 숫자로 먼저 순위를 출력하려고합니다.PHP 정렬 배열 및 순위 특정 필드

var_dump 결과

$myarray = array_filter($rankresult); 
natsort($myarray); 

array(6) { 
    ["Comp7"]=> string(3) "189" 
    ["OurPrice"]=> string(3) "189" 
    ["Comp9"]=> string(6) "198.99" 
    ["Comp6"]=> string(3) "208" 
    ["Comp3"]=> string(6) "226.97" 
    ["Comp4"]=> string(3) "274" 
} 

당신이 6 수를 총과의 두 가지 동일한 수 있음을 알 수 있습니다, 따라서이 같은 순위가됩니다 (예. Comp7 및 OurPrice은 모두 1 위를 기록하고 있습니다 6).

원하는 출력 :, 당신은 단순히 그들에게 인덱스를 말할 수있는 당신은 이미 (당신이이 나타나는)의 값을 분류 한 가정

우리의 가격 순위 = 1 6

+1

으로 시도? –

+0

여기에서 어디로 가야할지 모르겠습니다. "OurPrice"의 순위를 잡을 방법이 없습니까? – ToddN

+0

@ToddN : 출력은 어떻게됩니까? ** 가격 등급 = 1 of 6 **? – Nauphal

답변

3

당신이 무엇을 받고이 코드

$newarray = (array_unique(array_values($myarray))); 
$rank = array_search($myarray['OurPrice'],$newarray)+1; 
$count = count($myarray)); 
echo "Our Price Rank" . $rank . " of " . $count" 
+0

나의 대답과 비슷하게, 나는이 질문에 나의 초기 데이터가 주어지면이 접근법을 좋아한다 .Jonathans에 의해 언급 된 바와 같이 array_search라는 요점이있다. – ToddN

1

의 어떤에서 " OurProduct "키가 존재합니다.

$keys = array_keys($array); 
$rank = array_search("OurPrice", $keys); 

printf("We rank %d of %d", ++$rank, count($keys)); 

는 온라인을 시도해보십시오 http://codepad.org/qIwTGBzG