PHP-混合类型的排序数组

PHP-混合类型的排序数组,php,Php,我有一个混合类型的php数组,如下所示: $length = array (15, 3, 5, '-'); 我想对它进行排序,得到一个像这样排序的值列表:'-',3,5,15 我该怎么做 非常感谢。好吧,在数组中使用各种混合类型时,您需要设置自己的“优先级”,即什么是第一优先级,什么是最后优先级 您可以使用PHP函数定义自己的函数来对数组进行排序,并为每个数据类型或值定义自己的优先级 Shai.当在数组中使用各种混合类型时,您需要设置您自己的“优先级”,即什么是第一优先级,什么是最后优先级

我有一个混合类型的php数组,如下所示:

  $length = array (15, 3, 5, '-');
我想对它进行排序,得到一个像这样排序的值列表:'-',3,5,15

我该怎么做


非常感谢。

好吧,在数组中使用各种混合类型时,您需要设置自己的“优先级”,即什么是第一优先级,什么是最后优先级

您可以使用PHP函数定义自己的函数来对数组进行排序,并为每个数据类型或值定义自己的优先级


Shai.

当在数组中使用各种混合类型时,您需要设置您自己的“优先级”,即什么是第一优先级,什么是最后优先级

您可以使用PHP函数定义自己的函数来对数组进行排序,并为每个数据类型或值定义自己的优先级


Shai。

您必须使用usort,因为PHP的排序函数不稳定。请参见,您必须使用usort,因为PHP的排序函数不稳定。请参见

谢谢,在我的例子中,第一项应该是alwas“-”,然后是正常的数字排序(从低到高)。好的,那么只需检查数组是否包含破折号,如果是,请将其从数组中删除,使用常规排序()对数组进行排序,然后将破折号插入数组的开头。应该一点也不复杂。在这种情况下,normal sort()函数将为您提供所需的结果。我编写了一个大型的无需示例,正如Vikk正确地说的,常规排序()会很好:)谢谢,在我的情况下,第一项应该是alwas“-”,然后是一个普通数字排序(从低到高)。好的,因此,只需检查数组是否包含破折号,如果是,请将其从数组中删除,使用常规sort()对数组进行排序,然后将破折号按入数组的开头。应该一点也不复杂。在这种情况下,normal sort()函数将为您提供所需的结果。我编写了一个大型的无需示例,正如Vikk正确地说的那样,正则sort()就可以了:)