按mysql select规则排序数组

时间:2014-04-28 07:37:29

标签: php arrays select

大家好,我真的要查找任务我必须按条件使用mysql select或其他数组对数组进行排序。想象一下这样的事情

$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数组的末尾,但我对不同/更好的想法持开放态度。

更新//////////////////////////////////////////////

我需要看到所有ID,所以我不能跳过它们,我需要对它们进行排序。

为了更具体我会谎言有这样的输入

1,4,96(在数据库中的值)0,5,7,55(在数据库中不是数据库的值)将在这个结束时看起来像这样

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

2 个答案:

答案 0 :(得分:0)

您可以使用php数组排序功能:http://www.php.net/manual/en/array.sorting.php 还有一个名为array_unique的函数,它从数组中删除多个值。

如果要在MySQL查询中对数组进行排序,请使用" ORDER BY ASC / DESC"。

答案 1 :(得分: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"];
  }
}

`