2012-04-10 6 views
1

헤이 Guyz 내가 배열에 문제가 정렬 및 난 당신이 다음 기본적으로 내가이 배열을 정렬하려는 나에게배열 (오름차순) 문제를 정렬

대답이에 대한 모든 솔루션을 경우이 slove 수하는 방법을 모르는이 이 36 39 39 41

Array 
(
    [0] => Array 
     (
      [avg_pred_error] => 39 
      [user_name] => Abdul Samad 
     ) 

    [1] => Array 
     (
      [avg_pred_error] => 41 
      [user_name] => Kane Marcus 
     ) 

    [2] => Array 
     (
      [avg_pred_error] => 39 
      [user_name] => Sam Shawn 
     ) 

    [3] => Array 
     (
      [avg_pred_error] => 36 
      [user_name] => Axel Woodgate 
     ) 

) 
+0

읽기에 대한 [배열 정렬 (http://il.php.net/manual/en/array.sorting.php) 특히 ['에 usort()' ] (http://il.php.net/manual/en/function.usort.php) –

+0

http://stackoverflow.com/questions/2699086/php-sort-multidimensional-array-by-value – billyonecan

답변

4

사용 usort 같은 (오름차순) avg_pred_error와. 다음은 기본적으로 수동에서 기본적인 예입니다

function cmp($a, $b) { 
    if ($a['avg_pred_error'] == $b['avg_pred_error']) 
     return 0; 

    return ($a['avg_pred_error'] < $b['avg_pred_error']) ? -1 : 1; 
} 

// Sort (LOW to HIGH) and print the resulting array 
usort($array, 'cmp'); 
print_r($array); 
+0

고맙습니다 공유 나와 함께 당신의 경험 @ 조쉬 –

+0

문제 없어요, @ 사마드. – Josh

0
usort($list, function($entry1, $entry2) {return strcmp($entry1['avg_pred_error'], $entry2['avg_pred_error']);}); 

결과는 $ 목록에 다음이다

0

는 다행히이있다 오히려 간단합니다. 자신의 비교 기능을 제공 uasort를 사용

<?php 
$foo = array(
    array(
     'avg_pred_error' => 39, 
     'user_name' => 'Abdul Samad' 
    ), 
    array(
     'avg_pred_error' => 41, 
     'user_name' => 'Kane Marcus' 
    ), 
    array(
     'avg_pred_error' => 39, 
     'user_name' => 'Sam Shawn' 
    ), 
    array(
     'avg_pred_error' => 36, 
     'user_name' => 'Axel Woodgate' 
    ) 
); 

$sort = function($a, $b) { 
    if($a['avg_pred_error'] === $b['avg_pred_error']) { 
     return 0; 
    } 
    return $a['avg_pred_error'] < $b['avg_pred_error'] ? '-1' : '1'; 
}; 

uasort($foo, $sort); 

var_dump($foo);