首页 > 编程知识 正文

对数组进行排序的方法,java数组排序代码

时间:2023-05-05 12:01:21 阅读:106295 作者:986

如何按照对象的一个字段(例如name或count )对此对象数组进行排序?

阿拉伊

[0]=STD class对象

[ID]=1

[name]=pcdjy的重要花生

[count]=420

[1]=STD class对象

[ID]=2

[name]=杰尼斯

[count]=234

[2]=STD class对象

[ID]=3

[name]=gsdbb

[count]=4354

.

#1楼

这是比使用闭包更好的方法

usort($your_data,function ) ($a,$b ) ) )。

{

returnstrcmp($a-name,$b-name );

);

这在PHP文档中没有,但是如果使用的是5.3闭包,则可以指定可调用的参数。

#2楼

如果使用的是php oop,则必须进行以下更改:

公共静态函数CMP ($ a,$b )

{

returnstrcmp($a-name,$b-name );

}

//inthiscasefunction _ namewouldbecmp

usort($your_data,Array ) (your_class_name ),) FUNCTION_NAME );

#3楼

如果需要基于本地的字符串比较,可以使用strcoll代替strcmp。

请注意,如果需要,请首先将setlocale与LC_COLLATE一起使用以设置区域设置信息。

usort($your_data,function ) $a,$b

setlocale(LC_collate,' pl_PL.UTF-8 ' ); //exampleofpolishlanguagecollation

returnstrcoll($a-name,$b-name );

);

#4楼

在Codeigniter中使用此方法时,可以使用以下方法:

usort($jobs,Array ) $this-job_model,' sortJobs ' ); //function inside模式

usort($jobs,Array ) $this,' sortJobs ' );//写入内建控制器。

谢谢您的建议@rmooney。 真的对我有帮助。

#5楼

如果只是按一个字段排序,则usort是个好选择。 但是,如果需要按多个字段进行排序,解决方案很快就会混乱。 在这种情况下,可以使用YaLinqo库*为数组和对象实现查询语法,如SQL。 在所有情况下,它都有漂亮的语法:

$sortedbyname=from($objects )-orderby ) ' $v-name ' );

$sortedbycount=from($objects )-orderby ) ' $v-count ' );

$ sortedbycountandname=from ($ objects )-order by ($ v-count ) )-thenby ) $v-name );

其中' $v-count '是函数($ v ) { return $v-count; )的简称。 function($v ) { return $v-count; }function($v ) ) { return $v-count; (可以全部使用。 这些方法链返回迭代器,但如果需要,可以在末尾添加-toArray )以获取数组。

*我来开发

版权声明:该文观点仅代表作者本人。处理文章:请发送邮件至 三1五14八八95#扣扣.com 举报,一经查实,本站将立刻删除。