PHP/Datatables:将数字排序为文本

PHP/Datatables:将数字排序为文本,php,formatting,numbers,datatables,number-formatting,Php,Formatting,Numbers,Datatables,Number Formatting,我正在使用Datatables设计一个用PHP填充的表 除包含金额的列外,所有内容均按预期工作。 如果我单击此列的Datatables列标题以便按此列对表进行排序,它将对表进行排序,但只将其作为文本而不是数字,以便在3之前显示20等 在PHP中,有没有办法通过更改格式来防止这种情况 示例单元格: <td class="colAmount ralign"><?php echo number_format(doubleval($requests->amount), 2, ".

我正在使用Datatables设计一个用PHP填充的表

除包含金额的列外,所有内容均按预期工作。 如果我单击此列的Datatables列标题以便按此列对表进行排序,它将对表进行排序,但只将其作为文本而不是数字,以便在3之前显示20等

在PHP中,有没有办法通过更改格式来防止这种情况

示例单元格:

<td class="colAmount ralign"><?php echo number_format(doubleval($requests->amount), 2, ".", ","); ?></td>

如果我数据库中的金额($requests->amount)为100000,那么上面的格式将为100000.00,因为我需要使用千分位和小数点分隔符来显示它-这可能会被解释为文本


提前谢谢你,蒂姆

您可以在SQL查询中添加以下内容:

按字段+0排序

这将以编号的形式输出它。

您可以为此使用Datatables功能。这样,可以使用不同的格式进行显示和排序。这里有两种方法,我会选择样式,它使用
data
属性(来自那里的示例):


尼克松
系统架构师
爱丁堡
61
4月11日星期一25
3120美元/百万

在本例中,最后两列的数据将使用
数据顺序
属性进行排序。不需要进一步的配置,
Datatables
会自动检测这些属性。

谢谢。我需要找到一种不使用SQL的方法,因为这仅适用于用户希望按列搜索表的情况,即使用Datatables内置的排序功能。是否要使用PHP对结果排序?不,我只想将其格式化为数字,以便Datatables将其相应排序。在表结构中,哪一个是“类型”你的专栏?非常感谢!
<tr>
    <td data-search="Tiger Nixon">T. Nixon</td>
    <td>System Architect</td>
    <td>Edinburgh</td>
    <td>61</td>
    <td data-order="1303682400">Mon 25th Apr 11</td>
    <td data-order="3120">$3,120/m</td>
</tr>