2016-08-30 2 views
0

현재 가장 인기있는/일치하는 위치를 내림차순 (높음에서 낮음)으로 나열한 PHP 리더 보드를 개발 중입니다.일치하는 배열 값을

위치를 표시 할 수 있지만 위치를 그룹화/일치시키고 높은 순서로 표시 할 수 없습니다.

누군가가이 일을하는 방법에 대한 조언을 부탁드립니다. 고맙습니다.

PHP :

function parse_csv($file, $options = null) { 
    $delimiter = empty($options['delimiter']) ? "," : $options['delimiter']; 
    $to_object = empty($options['to_object']) ? false : true; 
    $str = file_get_contents($file); 
    $lines = explode("\n", $str); 
    $field_names = explode($delimiter, array_shift($lines)); 
    foreach ($lines as $line) { 
    if (empty($line)) continue; 
    $fields = explode($delimiter, $line); 
    $_res = $to_object ? new stdClass : array(); 
    foreach ($field_names as $key => $f) { 
     if ($to_object) { 
     $_res->{$f} = $fields[$key]; 
     } else { 
     $_res[$f] = $fields[$key]; 
     } 
    } 
    $res[] = $_res; 
    } 
    return $res; 
} 
$arr_csv = parse_csv("/data.csv"); 
$array = array(); 
for ($i = 0; $i < count($arr_csv); ++$i) { 
    array_push($array, $arr_csv[$i]["Location Name"]); 
} 
echo '<pre>'; 
print_r($array); 
echo '</pre>'; 

배열 :

Array 
(
    [0] => Bedford Sixth Form 
    [1] => Tokko Youth Space 
    [2] => WS Training 
    [3] => WS Training 
    [4] => University Technical College 
    [5] => Bedford Academy 
    [6] => Bedford College 
    [7] => Bedford College 
    [8] => Bedford College 
    [9] => Bedford College 
    [10] => Bedford College 
    [11] => Bedford College 
    [12] => Bedford College 
    [13] => Bedford College 
    [14] => Bedford College 
    [15] => Bedford College 
    [16] => Bedford College 
    [17] => Bedford College 
    [18] => Bedford College 
    [19] => Bedford College 
    [20] => Bedford College 
) 
+0

예상 결과? – Naruto

답변

0
$array = array(); 
for ($i = 0; $i < count($arr_csv); ++$i) { 
    if(!isset($array[$arr_csv[$i]["Location Name"]])){ 
     $array[$arr_csv[$i]["Location Name"]]=0; 
    } 
    $array[$arr_csv[$i]["Location Name"]]++; 
} 
asort($array); 
$tmp=array(); 
foreach($array as $k=>$v){ 
    $tmp[]="$v. $k"; 
} 
$array=$tmp;//or with array_reverse($tmp); 
+0

이것은 작동하지만 낮은 것부터 높은 것, 높지 않은 것, 낮은 것이 아니라 나열 함 - 위치 옆에 양을 표시하도록하려면 어떻게해야합니까? 예 : Bedford College 2. WS Training –

+0

@Adam은'$ result = array_reverse $ input);'주문을 변경하려면 – JustOnUnderMillions

+0

@ 아담'위치 옆에있는 금액'이 새 질문을 말하는데, 내 대답은 – JustOnUnderMillions

0

사용할 수 array_count_values ​​($ 배열)

$your_result = array_count_values($your_array); 

var_dump($your_result); 
0

array_count_values()을 사용하여이 정보를 통해 원하는대로 값을 정렬 할 수 있습니다.

관련 문제