此问题已在此处有答案:
How do I use a class method as a callback function?(5个答案)
pass a callback WITH arguments in PHP(3个答案)
5天前关闭。
我创建了一个方法来对数组进行排序,其中的值如下所示:array('regdate','birthday','editdate')
,它应该按照包含word date的元素应该向左移动的方式对元素进行排序,就像这样array('regdate','editdate','birthday')
public function sortColumnsBySubstring($haystack, $substr){
if ($haystack == $substr) {
return 0;
}
return strpos($substr) !== false ? -1 : 1;
}
然而,我不清楚如何使其工作。我在php手册中找到的示例显示了没有参数或闭包的函数-我使用php版本5。2所以我不能使用闭包。
我能想到的就是这个usort($date_cols, $this->sortColumnsBySubstring($value, 'date')
,但是这里的$value是未定义的,所以它不是解。
问题是如何实现功能才能正确工作?
2条答案
按热度按时间taor4pac1#
你需要将回调函数作为一个数组传递:
参见PHP文档中的Callbacks / Callables。
xdnvmnnf2#
第一个答案是我最初的问题:
第二个解决方案使用拆分成两个数组,排序,然后合并它们回来。我尝试使用更多与时间相关的词来识别与时间相关的价值。
它是这样实现的: