大家好,我真的要查找任务我必须按条件使用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);
答案 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"];
}
}
`