为了账号安全,请及时绑定邮箱和手机立即绑定

CakePHP 3.8:如何在控制器中使用 uasort()

CakePHP 3.8:如何在控制器中使用 uasort()

PHP
芜湖不芜 2022-11-12 13:16:10
我正在尝试在 CakePHP 控制器中使用uasort()函数。我有一个 txt 文件,每行包含一个文件名。文件名的格式为 SOME_TEXT_YY.MM.DD_HH-MM_SOME_TEXT 我想在给定日期之后对文件进行排序并再次保存它们因此我编写了这段 php 代码,它使用普通 php 可以正常工作:<?// compare functionfunction cmp($a, $b) {    $a1 = explode('-', $a);    $a2 = explode('S', $a1[1]);    $ac = substr($a1[0], -11,11).$a2[0];    $b1 = explode('-', $b);    $b2 = explode('S', $b1[1]);    $bc = substr($b1[0], -11,11).$b2[0];    if ($ac == $bc) {        return 0;    }    return ($ac < $bc) ? -1 : 1;}$files = file("files.txt");uasort($files, 'cmp');file_put_contents('sorted.txt', $files);foreach ($files as $line) {    echo $line."</br>";}?>当我试图在 CakePHP 的控制器函数中运行它时,它不知何故不起作用。我认为这是因为“嵌套”功能。有人知道如何让它在控制器内部工作吗?
查看完整描述

1 回答

?
汪汪一只猫

TA贡献1898条经验 获得超8个赞

虽然@El_Vanja 的建议可行,但在您需要在多个控制器操作中重复使用相同功能的情况下,它并不理想。

根据callables 上的文档,“实例化对象的方法作为数组传递,该数组包含索引 0 处的对象和索引 1 处的方法名称”。所以,你可以用uasort($otrkeys, [$this, 'cmp']);.


查看完整回答
反对 回复 2022-11-12
  • 1 回答
  • 0 关注
  • 86 浏览

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信