【发布时间】:2023-04-06 01:30:01
【问题描述】:
<?php
$db=mysql_connect ("localhost", "root", "") or die ('I cannot connect to the database because: ' . mysql_error());
//-select the database to use
$mydb=mysql_select_db("address");
$aArray = array();
$sSQL = sprintf("SELECT * FROM address1",
mysql_real_escape_string($ir['fname'])
);
$rResult = mysql_query($sSQL);
while ($aRow = mysql_fetch_assoc($rResult))
{
$aArray[] = $aRow;
}
//print_r($aArray);
echo"<br>";
echo"<br>";
echo"<br>";
$unsorted = $aArray;
function quicksort($array)
{
if (count($array) == 0)
return array();
$pivot = $array[0];
$left = $right = array();
for ($i = 1; $i < count($array); $i++) {
if ($array[$i] < $pivot)
$left[] = $array[$i];
else
$right[] = $array[$i];
}
return array_merge(quicksort($left), array($pivot), quicksort($right));
}
$sorted = quicksort($unsorted);
print_r($sorted);
?>
我正在尝试从 MySQL 数据库(2500 行数据)中提取一些数据,然后将该数据存储到一个数组中,然后对该数组进行快速排序。我不知道我的方法是否错误,因此将不胜感激。到目前为止,我一直收到错误消息:
致命错误:达到“100”的最大函数嵌套级别,正在中止!在第 25 行的 C:\wamp\www\koolbi\heapsearch.php 中
【问题讨论】:
-
为什么不在 SQL 查询期间对数据进行排序?
-
确实,您应该更喜欢用 SQL 对数据进行排序,这样会更容易更快。
-
既然 PHP 内置了快速排序,为什么还要编写所有逻辑呢?
-
@MarkBaker 它的讲座命令。它是一门名为分析算法的课程,因此内置函数无法满足要求。但是我如何访问内置函数?
-
任何内置数组排序函数都使用快速排序作为其核心算法......你说内置函数无法处理要求,甚至 array_multisort() 或 usort() ?您似乎没有做任何内置排序无法处理的特别聪明的事情