Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/jsf-2/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 按编号对单行中的列进行排序_Php_Sorting - Fatal编程技术网

Php 按编号对单行中的列进行排序

Php 按编号对单行中的列进行排序,php,sorting,Php,Sorting,我可能想得太多了。。但我想不出来。我有一个有五列的数据库。这些列中有一个随机数1-6。我试图拉这一行,然后重新排序他们要么asc或desc-没有关系 Col1 | Col2 | Col3 | Col4 | Col5 --------------------------------- 2 | 1 | 3 | 5 | 4 我想对这些行进行排序,以了解这些行是否显示: 1,2,3,4,5或5,4,3,2,1 有人能帮我吗?建议将列值存储到数组中,然后执行排序$column

我可能想得太多了。。但我想不出来。我有一个有五列的数据库。这些列中有一个随机数1-6。我试图拉这一行,然后重新排序他们要么asc或desc-没有关系

Col1 | Col2 | Col3 | Col4 | Col5
---------------------------------
  2  |   1  |   3  |   5  |   4
我想对这些行进行排序,以了解这些行是否显示: 1,2,3,4,5或5,4,3,2,1


有人能帮我吗?

建议将列值存储到数组中,然后执行排序$column\u value\u数组,sort\u NUMERIC


另外,如果您只想在PHP中对数组进行排序,那么已经有一个函数可以完成了

sort ($array [, int $sort_flags = SORT_REGULAR ] )
该方法将返回与排序成功状态相关的布尔值

请注意,sort_标志是兼性的,在您的情况下实际上不需要使用

有关更多信息,请参阅


另一种方法是在选择行时向查询中添加ORDERBY子句。

这里是一个查询。这将确保在每一列中存在任何1、2、3、4、5个数字,即5列中有不同的数字

select *,
((LENGTH(concat(cola,colb,colc,cold,cole))) - LENGTH(REPLACE(concat(cola,colb,colc,cold,cole), '1', ''))) as one,
((LENGTH(concat(cola,colb,colc,cold,cole))) - LENGTH(REPLACE(concat(cola,colb,colc,cold,cole), '2', ''))) as two,
((LENGTH(concat(cola,colb,colc,cold,cole))) - LENGTH(REPLACE(concat(cola,colb,colc,cold,cole), '3', ''))) as three,
((LENGTH(concat(cola,colb,colc,cold,cole))) - LENGTH(REPLACE(concat(cola,colb,colc,cold,cole), '4', ''))) as four,
((LENGTH(concat(cola,colb,colc,cold,cole))) - LENGTH(REPLACE(concat(cola,colb,colc,cold,cole), '5', ''))) as five
from tests
having one = 1 AND two = 1 AND three = 1 AND four = 1 AND five = 1
我建议

SELECT * from table WHERE

Col1 in (1,2,3,4,5) && 
Col2 in (1,2,3,4,5) &&
Col3 in (1,2,3,4,5) &&
Col4 in (1,2,3,4,5) &&
Col5 in (1,2,3,4,5) &&
Col1 != Col2 &&
Col1 != Col3 &&
Col1 != Col4 &&
Col1 != Col5 &&
Col2 != Col3 &&
Col2 != Col4 &&
Col2 != Col5 &&
Col3 != Col4 &&
Col3 != Col5 &&
Col4 != Col5 &&

通常情况下,如果只有一行,则对行而不是列进行排序。。。它总是会被排序的,因为没有其他东西不能排序。如果你想要一些不同的东西,你能再解释一下吗?我试图确定他们是否在5列中有1,在5列中有2,在5列中有3,在5列中有4,在5列中有5。我想重新订购会更容易。。但我只是想确定这5列中是否都有不同的数字。所以,你要弹出一行。。。然后根据该行列数据中的内容对列进行排序?我想这就是我想做的,是的。如果我能做到这一点,我就会完成我想做的事情。否则如果我可以验证这些列中的不同值,那也可以。所以如果col1!=可乐2!=col3!=可乐4!=如果有道理的话。因为如果所有列都不相等。。这是1-5。所以你可能不想在SQL中排序,所以下面的PHP答案是你最好的选择。PHP有更易于使用的工具来处理这类事情。