class DownTime {
public $total, $longest, $count;
}
我有一个关联数组(键是一个id,值是DownTime对象).
我想根据$total对它进行排序
我已经阅读了有关stackoverflow的PHP: Sorting Arrays和其他一些问题.
我理解uasort会做得很好.但是,作为一种OOP方法,我更喜欢在DownTime类中定义一个特殊函数(比如在C中定义operator<(),或在Java中实现Comparable.compareto()),而不是在调用某个sort函数时传递函数.
解决方法:
仍在使用该语言的另一个选项是创建一个扩展Iterator
而不是使用本机数组的迭代器集合类.
实际上,您还可以扩展ArrayObject
并覆盖排序方法:
class MyArrayObject extends ArrayObject {
public function natsort() {
$this->uasort(function($a, $b) {
return $a->total > $b->total ? 1 : -1;
});
}
}
$arrayObject = new MyArrayObject($array);
$arrayObject->natsort();
foreach ($arrayObject as $value) {
//sorted values
}
或者如果你真的需要一个原生数组:
$array = $arrayObject->getArraycopy();
但我发现我通常不需要使用迭代器/ arrayobjects的本机数组.
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。