2014-04-28 4 views
0

안녕하세요 여러분, 정말로 chalenging 작업이 필요합니다. mysql을 선택하거나 다른 배열을 사용하여 조건별로 배열을 정렬해야합니다. 내 생각 한게 그mysql 선택 규칙으로 배열 정렬

$arrayINeedToSort = array(5,4,7,96,1,0,55); 

// Dont know if it is important cause of next step  
sort($arrayINeedToSort); 

$arrayToCheckDuplicData = array(); 

foreach($arrayINeedToSort as $aid) 
{ 
    $sql = mysql_query("SELECT column FROM `some_table` WHERE arrayValueId = $aid "); 
    $num = mysql_num_rows($sql); 
    if($num) 
    { 
    echo $aid; 
    } 
    else 
    { 
    // skip this id cause it is not in array but i would like to push at the end of an  array again sorted 

    if(in_array($aid,$arrayToCheckDuplicData)) 
    { 
     echo $aid; 
    } 
    else 
    { 
     $arrayINeedToSort[] = $aid; 
    } 
    $arrayToCheckDuplicData[] = $aid; 
    } 
} 

같은 것을 상상해 또 다른 간단한 배열 검사와 acutal 배열의 마지막에 배열 값을 밀어하지만 난 다른/더 나은 아이디어에 개방입니다.

UPDATE ////////////////////////////////////////////////////////////////

모든 ID를 볼 필요가 있으므로 건너 뛸 수 없으며 정렬해야합니다.

은 내가 (데이터베이스에있는 값)이

1,4,96 등의 입력을 가지고 liek 것보다 구체적인 0,5,7,55 (, 데이타베이스에없는 값)를 목표로한다 배열에서 여러 값을 삭제입니다 array_unique라는 함수가 있는데, http://www.php.net/manual/en/array.sorting.php 입니다 : 결국 배열 당신은 PHP 배열 정렬 기능을 사용할 수 있습니다이

$outputSortedArray(1,4,96,0,5,7,55); 
+0

이 당신이 원하는 경우, 다음과 같은 코드가 확인

확인합니다. 예상되는 최종 산출물은 무엇입니까? –

답변

0

원하는대로 구체적으로 작성해주세요. 입력 내용은 무엇이며 출력 내용은 무엇을 원하십니까?

$ arrayINeedToSort 배열을 정렬해야한다면 sort 함수를 사용하십시오.

입력 및 출력 배열의 예를 제공하십시오. 또한 확인하고 싶은 조건의 테이블. 당신은 같은 배열에 값을 밀어하지 않습니다

`

$arrayINeedToSort = array(5,4,7,96,1,0,55); 

$in_cond = implode(",", $arrayINeedToSort); 

$arrayToCheckDuplicData = array(); 

$result = mysql_query("SELECT column FROM `some_table` WHERE arrayValueId IN (" . $in_cond . ") ORDER BY arrayValueId ASC"); 

$num = mysql_num_rows($result); 

while ($row = mysql_fetch_assoc($result)) { 
    if (in_array($row["arrayValueId"], $arrayINeedToSort)) { 
    echo $row["arrayValueId"]; 
    } 
    else { 
    if (in_array($row["arrayValueId"], $arrayToCheckDuplicData)) { 
     echo $row["arrayValueId"]; 
    } 
    $arrayToCheckDuplicData[] = $row["arrayValueId"]; 
    } 
} 

`

+0

작은 편집 예;) 귀하의 솔루션을 빠르고 안전 나는 두 가지 방법으로 모두 시도해보십시오 고맙다고 생각합니다 – user2826311

+0

당신이 솔루션을 좋아하고 대답을 유용하게 찾으면 upvote 바랍니다. :) – Sara

0

처럼 보일 것입니다.

MySQL 쿼리에서 배열을 정렬하려면 "ORDER BY ASC/DESC"를 사용하십시오.