【问题标题】:using usort with associative array inside symfony2 controller在 symfony2 控制器中使用带有关联数组的 usort
【发布时间】:2013-01-11 15:27:37
【问题描述】:

如何使用usortsymfony2 控制器内的关联数组进行排序?

//sort
function compare($a, $b)
{
    return strnatcmp($a['sort'], $b['sort']);
}

usort($content, 'compare');

这给了我以下错误:

警告:usort() 期望参数 2 是有效的回调,未找到函数“比较”或无效的函数名称

就像把它放在自己的私有函数中一样

// sort
usort($content, '$this->compare');

return $content;

}

//sort
private function compare($a, $b)
{
    return strnatcmp($a['sort'], $b['sort']);
}

这没有变化

// sort 
usort($content, 'compare');

return $content;

}

//sort
private function compare($a, $b)
{
    return strnatcmp($a['sort'], $b['sort']);
}

【问题讨论】:

  • 如果你只是匿名实现函数作为第二个参数,它是否有效?
  • 我读到过,但不知道怎么做,提示?

标签: php sorting symfony usort


【解决方案1】:
usort($content, array($this, 'compare'));

这就是您将对象方法作为回调传递的方式。有关示例,请参阅callbacks

【讨论】:

    【解决方案2】:

    尝试匿名实现该功能:

    usort($content, function ($a, $b) {
        return strnatcmp($a['sort'], $b['sort']);
    });
    
    return $content;
    

    【讨论】:

    • 漂亮,谢谢。顺便说一句,在 symfony2 中永远不可能在函数(动作)中声明函数,你知道吗?
    • 看来你可以在另一个答案中做类似的事情。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-08-28
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多