Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/265.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/ruby-on-rails-4/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Php 按mysql select生成的规则对数组排序_Php_Arrays_Select - Fatal编程技术网

Php 按mysql select生成的规则对数组排序

Php 按mysql select生成的规则对数组排序,php,arrays,select,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)

大家好,我有一个非常艰巨的任务,我必须用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);

您可以使用php数组排序函数: 还有一个名为array_unique的函数,用于从数组中删除多个值


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

能否请您更具体地说明所需内容。输入内容和输出内容

如果需要对数组$ArrayNeedToSort进行排序,请使用排序函数

给出一个输入和输出数组的示例。还有您要检查的状态表

检查以下代码并验证这是否是您想要的:

`


`

您没有将值推送到同一个数组上。您预期的最终输出是什么?只需少量编辑(是;)您的解决方案更快、更安全我想我会尝试两种方法谢谢您如果您喜欢该解决方案并发现答案有用,请进行投票。:)
$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"];
  }
}