2014-01-16 3 views
-1

죽은 말을 때리는 것이 싫지만 여기에 있습니다. 나는 아파치 2 서버를 실행하고 MySQL을 사용하여 내 자신의 PHP/HTML 폼을 만들고 출력한다. 위대한 작품, 나는 그것을 사랑해.데이터베이스에 삽입하기 전에 배열 정렬

내 문제는 내가 MySQL에 삽입하려는 거대한 배열이 있지만 먼저 정렬해야합니다 (0 < 00). 나는 많은 Q를 겪었습니다 & 주제를 다루는이 코드는 제공된 하나의 배열에서 작동합니다. 그러나, 나는 약 7000 세트를 통해 루프해야하고 원래 형식으로 출력하고 싶습니다만, 나는 원하는대로 그 일을하는 운이 없었습니다.

$data = array(
    array(29,11,15,30,33), 
    array(30,11,25,18,02), 
    array(12,15,08,06,18), 
    array(17,20,03,21,02), 
    array(26,27,12,30,11), 
    array(05,25,34,11,16), 
    array(29,11,06,30,14), 
    array(05,26,12,18,33), 
    array(23,28,05,22,09), 
    array(05,36,31,32,27), 
    array(02,06,03,05,14) 
); 
+1

두 가지 질문 : (1) 어떤 기준으로 분류 했습니까? (2) MySQL을 공격하기 전에 * 정렬되어야하는 이유는 무엇입니까? 이는 데이터베이스 설계에 문제가 있음을 의미합니다. –

+1

소스 데이터입니까? 각 개별 하위 배열의 요소를 정렬하거나, 하위 배열을 $ data 내에 정렬 시키길 원합니까? 이것은 매우 모호한 질문입니다. . . – ernie

+0

패턴 매칭을위한 mysql 쿼리의 패턴을 유지하기 위해 각 세트를 오름차순으로 정렬해야합니다. 그 말이 맞는다면. – user3138409

답변

2

각 하위 배열을 정렬하는 쉬운 방법 :

$data = array(
    array(29,11,15,30,33), 
    array(30,11,25,18,02), 
    array(12,15,08,06,18), 
    array(17,20,03,21,02), 
    array(26,27,12,30,11), 
    array(05,25,34,11,16), 
    array(29,11,06,30,14), 
    array(05,26,12,18,33), 
    array(23,28,05,22,09), 
    array(05,36,31,32,27), 
    array(02,06,03,05,14) 
); 

foreach($data as &$value){ // Mind the & byref value 
    sort($value); 
} 

var_dump($data); 
// $data is now sorted over here 

출력 :

또는 @JREAM 같은 제안

array(11) { 
    [0]=> 
    array(5) { 
    [0]=> 
    int(11) 
    [1]=> 
    int(15) 
    [2]=> 
    int(29) 
    [3]=> 
    int(30) 
    [4]=> 
    int(33) 
    } 
    [1]=> 
    array(5) { 
    [0]=> 
    int(2) 
    [1]=> 
    int(11) 
    [2]=> 
    int(18) 
    [3]=> 
    int(25) 
    [4]=> 
    int(30) 
    } 
    [2]=> 
    array(5) { 
    [0]=> 
    int(0) 
    [1]=> 
    int(6) 
    [2]=> 
    int(12) 
    [3]=> 
    int(15) 
    [4]=> 
    int(18) 
    } 
    [3]=> 
    array(5) { 
    [0]=> 
    int(2) 
    [1]=> 
    int(3) 
    [2]=> 
    int(17) 
    [3]=> 
    int(20) 
    [4]=> 
    int(21) 
    } 
    [4]=> 
    array(5) { 
    [0]=> 
    int(11) 
    [1]=> 
    int(12) 
    [2]=> 
    int(26) 
    [3]=> 
    int(27) 
    [4]=> 
    int(30) 
    } 
    [5]=> 
    array(5) { 
    [0]=> 
    int(5) 
    [1]=> 
    int(11) 
    [2]=> 
    int(16) 
    [3]=> 
    int(25) 
    [4]=> 
    int(34) 
    } 
    [6]=> 
    array(5) { 
    [0]=> 
    int(6) 
    [1]=> 
    int(11) 
    [2]=> 
    int(14) 
    [3]=> 
    int(29) 
    [4]=> 
    int(30) 
    } 
    [7]=> 
    array(5) { 
    [0]=> 
    int(5) 
    [1]=> 
    int(12) 
    [2]=> 
    int(18) 
    [3]=> 
    int(26) 
    [4]=> 
    int(33) 
    } 
    [8]=> 
    array(5) { 
    [0]=> 
    int(0) 
    [1]=> 
    int(5) 
    [2]=> 
    int(22) 
    [3]=> 
    int(23) 
    [4]=> 
    int(28) 
    } 
    [9]=> 
    array(5) { 
    [0]=> 
    int(5) 
    [1]=> 
    int(27) 
    [2]=> 
    int(31) 
    [3]=> 
    int(32) 
    [4]=> 
    int(36) 
    } 
    [10]=> 
    &array(5) { 
    [0]=> 
    int(2) 
    [1]=> 
    int(3) 
    [2]=> 
    int(5) 
    [3]=> 
    int(6) 
    [4]=> 
    int(14) 
    } 
} 

편집, 당신은 array_walk을 사용할 수 있습니다 :

array_walk($data, sort); 
+0

그게 아마도 가장 쉬운 방법입니다. 나는 array_multisort와 array_walk를 가지고 놀고있었습니다 :) – JREAM

+0

또한 사용법을 게시했습니다. – Niels

관련 문제