2014-07-23 3 views
0

배열이 있습니다. 이제 배열을 오름차순으로 정렬하려고합니다. 나는 노력하지만 작동하지 않습니다. 내 배열 배열을 먼저 정렬하십시오.

Array 
    (
     [0] => Array 
      (
       [0] => 216 
       [id] => 216 
       [1] => 52.42 
       [TRUNCATE(100*(sum(m.carbs/(m.carbs+m.fat+m.protein))/count(u.id)),2)] => 52.42 
       [2] => 2014-07-22 
       [Cdate] => 2014-07-22 
      ) 

     [1] => Array 
      (
       [0] => 217 
       [id] => 217 
       [1] => 73.91 
       [TRUNCATE(100*(sum(m.carbs/(m.carbs+m.fat+m.protein))/count(u.id)),2)] => 73.91 
       [2] => 2014-07-19 
       [Cdate] => 2014-07-19 
      ) 

     [2] => Array 
      (
       [0] => 220 
       [id] => 220 
       [1] => 71.87 
       [TRUNCATE(100*(sum(m.carbs/(m.carbs+m.fat+m.protein))/count(u.id)),2)] => 71.87 
       [2] => 2014-07-18 
       [Cdate] => 2014-07-18 
      ) 

지금 내가 첫 번째 인덱스에 마지막으로 내 배열을 정렬 할 것이다

2,1,0

이미 함수를 작성하지만

function lastSort($a, $b) { 
    $aLast = end(explode(' ', $a)); 
    $bLast = end(explode(' ', $b)); 

    return strcasecmp($aLast, $bLast); 
} 

$r=uasort($array, 'lastSort');diamen 
+1

SQL 쿼리에서 ORDER BY 절을 사용하지 않는 이유는 무엇입니까? –

답변

0

사용을 작동하지 array_reversehttp://php.net/manual/en/function.array-reverse.php

<?php 

$array = array(0 => array("foo" => "bar"), 
       1 => array("faz" => "baz"), 
       2 => array("x" => "y") 
      ); 

print_r(array_reverse($array, true)); 
에서

결과 :

Array 
(
    [2] => Array 
     (
      [x] => y 
     ) 

    [1] => Array 
     (
      [faz] => baz 
     ) 

    [0] => Array 
     (
      [foo] => bar 
     ) 

) 
0

배열을 반대로 무슨 당신이 원하는, 왜 PHP 기본 기능 array_reverse를 사용하지 않기 때문에? array_reverse() :이해야

$array = array(/*... Your array*/); 
$r = array_reverse($array); 

당신을 절약 할 수 있습니다.

+0

키를 예약하려면 두 번째 매개 변수 (true)를 기억하십시오. –

+0

@hd. 이 문제의 키는 숫자이며 숫자 키는 항상 array_reverse에 의해 유지되므로 필수 사항은 아닙니다.) – niconoe

+0

내 테스트에서 다르게 나타났습니다. http://codepad.org/1ZaiTMy1 http://codepad.org/I56sIV2q - 예상하겠습니다. 'x => y'는 0이 아닌 인덱스 2가됩니다. –

관련 문제