Я использую PHP для создания списка ссылок на текст, выполняя поиск preg_match_all в таблице базы данных. Вот PHP-код:
$query = "SELECT primary_tag,display_short_title,content FROM topics;";
$result = mysql_query($query) or die("Query failed : " . mysql_error());
$num_results = mysql_num_rows($result);
for ($i = 0; $i < $num_results; $i++) {
$row = mysql_fetch_array($result);
if (preg_match_all("/(\<i\>U\<\/i\>|U) [0-9]{1,2}\.[0-9]{1,7}/", $row["content"], $matches)) {
foreach ($matches[0] as $match) {
$match = ltrim(strip_tags($match), "U ");
echo '<p class="textmark_result">' . $match;
echo ' <a href="../Essays/topic.php?shorttitle=' . $row["primary_tag"] . '">' . $row["display_short_title"] . '</a>';
echo "</p>\n";
}
}
}
А результаты (просмотр исходника) выглядят так:
<p class="textmark_result">15.1737 <a href="../Essays/topic.php?shorttitle=medicine">Medicine</a></p>
<p class="textmark_result">5.678 <a href="../Essays/topic.php?shorttitle=science">Science</a></p>
<p class="textmark_result">14.665 <a href="../Essays/topic.php?shorttitle=science">Science</a></p>
На получившейся веб-странице я хочу упорядочить результаты по десятичному знаку в середине, $match в коде, чтобы (в этом примере) сначала было 5,678, затем 14,665, затем 15,1737. Есть ли способ сделать это?
Благодарю вас!