这是我的回调usort()
public function sortProperties($a, $b) {
$sortA = inflector::camelize(str_replace('-', '_', $this->sortBy));
$sortB = inflector::camelize(str_replace('-', '_', $this->sortBy));
$a = Arr::get($a, $sortA);
$b = Arr::get($b, $sortB);
if (is_numeric($a) AND is_numeric($b)) {
return $a < $b;
} else {
return strcasecmp($a, $b);
}
}
通常,当我看到我的任何代码中的前两行时,它会向我尖叫:重构!我想这是因为它们是相同的。
我知道我可以制作一个函数getCamelized()
,但我认为我不会在此之外再次使用它。
有没有办法把这4行变成2行?可以func_get_args()
或array_walk()
在这里帮助我吗?
另外,这个排序功能有什么问题吗?