PHP usort 不会对类进行排序

2024-02-23

这是要排序的元素数组的示例:

$items = 
    array
      0 => 
        object(stdClass)[8]
          public 'id' => string '110' (length=3)
          public 'brand_id' => string '18' (length=2)
            array
              0 => string ' OT-708' (length=7)
          public 'failed' => null
          public 'diff' => null
      1 => 
        object(stdClass)[9]
          public 'id' => string '161' (length=3)
          public 'brand_id' => string '18' (length=2)

所以,假设我想排序brand_id。 这是我的 usort 回调函数:

function _compare($itemA, $itemB){

    if ($itemA->brand_id == $itemB->brand_id) {

        return 0; 
    }
    else{
        return strcmp($itemA->brand_id, $itemB->brand_id); //just an example...
    }

}

当我这样做时usort($items, '_compare'); var_dump($items);什么都没发生。有关如何解决此问题的任何线索?

- 更新 -

好的,我将问题简化为:

function cmp($itemA, $itemB){
    return -1;
}

if (usort($items, "cmp"))
                echo 'I just sorted!';
else echo 'Cant sort!';

它总是打印 '无法排序!'


最后我发现了这个错误的根源。问题是这段代码位于一个类中。

如果这是你的情况,那么你应该这样调用 usort :

usort($items, array("MyClass", "compare_method"));

此外,如果您的类位于命名空间中,则应在 usort 中列出完整的命名空间。

usort($items, array('Full\Namespace\WebPageInformation', 'compare_method'));
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

PHP usort 不会对类进行排序 的相关文章

  • Laravel Valet 不工作。 127.0.0.1 连接被拒绝

    试图让代客泊车设置正常工作 当访问 127 0 0 1 时 连接被拒绝 这是我在访问 dev 站点设置之一时收到的消息 我已经确保 apache 已停止 并且一直在谷歌上搜索所有地方 但无法找到解决方案 有没有人遇到过这个或对下一步尝试什么
  • TCPDF 为一个文档中的不同页面设置不同的页眉

    有没有办法使文档中第一页的页眉徽标和第二页的页眉徽标不同 我认为在添加页面之间更改标题数据可能会解决问题 但在我的测试中 添加第一页后设置标题似乎没有效果 other stuff pdf gt setHeaderFont array PDF
  • Php 会话标头已经发送错误[重复]

    这个问题在这里已经有答案了 可能的重复 php 标头已发送错误 https stackoverflow com questions 3319207 php headers already sent error 我已附上我的代码 该代码用于
  • localhost/test.php 不返回任何内容

    我正在遵循教程构建一个网络应用程序 我创建了一个简单的test php网络空间中的文件 var www html 问题是当我输入localhost test php在浏览器地址窗口中 它返回一个空页面 我试过localhost php in
  • exec()、shell_exec()、curl_exec() 的安全漏洞

    有时 我会使用 exec shell exec 和curl exec 以下是典型用途 假设其中有 PHP 变量 即第一个变量中的 html 用户有可能修改其内容 从安全漏洞的角度来看 我应该关注什么 escapeshellcmd 和 esc
  • 将 php filter_var 与 mysql_real_escape_string 结合使用

    我想首先说 我意识到 PDO mysqli 是新标准 并且已被 SO 广泛覆盖 然而 在这种特殊情况下 我没有时间在启动客户端站点之前将所有查询转换为 PDO 以下内容已在网站上的大多数查询中使用 我可以补充一下 这不是我所使用的 user
  • 句子中模糊的电子邮件地址

    我正在输出日志消息 需要隐藏其中的电子邮件地址 日志消息可能如下所示 A lead was saved for email protected cdn cgi l email protection Date 11th December 20
  • 如何解码这个 JSON 字符串?

    这是我从 feed finder url 中得到的字符串 JSON 编码 updated 1265787927 id http www google com reader api 0 feed finder q u003dhttp itca
  • PHP session_destroy() 警告会话对象销毁失败[重复]

    这个问题在这里已经有答案了 我有这个 php 脚本 但在破坏会话时遇到问题 我收到这个警告 警告 session destroy 会话对象销毁失败 第 6 行 C xampp htdocs template nota finalizare
  • 如何在 Symfony 和 Doctrine 中实现 ManyToMany 和 OneToMany?

    我发现该文档在解释实体之间关系的创建方面非常糟糕 因此 我必须向我的 StackExchangers 同胞寻求帮助 所以 我正在尝试构建以下案例 Case 1 A User属于一个或多个Group and a Group可以有很多Permi
  • 将 Php 数组编码为 json [关闭]

    很难说出这里问的是什么 这个问题是含糊的 模糊的 不完整的 过于宽泛的或修辞性的 无法以目前的形式得到合理的回答 如需帮助澄清此问题以便重新打开 访问帮助中心 help reopen questions 我想对我的 php 数组进行编码 A
  • 找时间通过 PHP 执行 MySQL 查询

    我在互联网上看到过这个问题 here http www phpbuilder com board showthread php t 2100256 and here http answers yahoo com question index
  • https 重定向 laravel .htaccess 之后删除 /public

    我有一个 Laravel 页面部署在共享主机中 当我强制 http 请求重定向到 https 时 url 包含 public 我的根 htaccess 是 RewriteEngine on RewriteCond REQUEST URI p
  • PHP 7.2 计数错误

    警告 count 参数必须是数组或对象 实现 Countable in 我在以下行中收到上述错误 if 0 gt count this gt xprop 有人可以帮助我理解这一点吗 我对 PHP 还很陌生 问题显然是 this gt xpr
  • MySQL LAST_INSERT_ID() 和 FOUND_ROWS()

    当 PHP 脚本每秒有数百个查询时会发生什么 它会影响这些函数吗 是否保证它们会返回当前脚本中最后一个插入语句中最后插入的 id 它会返回当前脚本中最后一次选择的行数吗 如果同时从另一个脚本进行新的插入或选择 在 FOUND ROWS 的情
  • 在同一服务器上的 2 个子域中安装 2 个 WordPress 时共享用户

    我有 2 个 WordPress 网站 位于 2 个不同的子域中 例如test1 abc com and test2 abc com 这两个网站都激活了 wp require 插件 只有登录用户才能看到该网站 我们想要创建一个系统 如果用户
  • PHP7.1上读取会话数据失败

    分享一个我遇到的问题 现已解决 在我的开发机器上 我使用 PHP 运行 IIS 我升级到 PHP7 突然我的代码不再工作 返回此错误 session start 读取会话数据失败 用户 路径 C WINDOWS temp 看起来像是权限问题
  • IMAP 和 PHP - 从已发送文件夹和收件箱文件夹中获取所有电子邮件

    我正在尝试获取接收和发送的所有电子邮件 并使用 PHP 将其写入 mySQL 数据库 我使用的主机名是 hostname imap gmail com 993 imap ssl INBOX 它仅引用收件箱 并成功抓取收到的电子邮件 为了抓取
  • php - 致命错误:调用 AppServ 中未定义的函数 mcrypt_get_iv_size()

    当我通过以下方式使用 mcrypt get iv size 函数时发现一个问题AppServ https www appserv org 我尝试寻找与解决问题相关的主题 但是 我尝试将 libmcrypt dll 下载到 symtem32
  • 使用 .htaccess 进行 PHP 设置时出现 500 内部服务器错误

    当我使用时 htaccess对于以下 PHP 设置 我得到500 Internal Server Error访问网站时 中的代码 htaccess file php flag display errors off php flag log

随机推荐

  • 为什么 platform.release() 在 Windows 10 中返回“8”? [复制]

    这个问题在这里已经有答案了 我在我的 Windows 10 工作站上运行它 import platform print platform release gt 8 我有些困惑 因为我使用的是 Windows 10 响应不应该是 10 吗 我
  • Entity Framework 4.0 是否允许在没有设计人员的情况下工作?

    我目前喜欢使用 NHibernate Fluent NHibernate 我考虑使用 Entity Framework v1 因为它有成熟的 Linq 支持 但我不喜欢与点击设计师一起工作 而且它也不支持 POCO 现在 EF v4 确实支
  • Android Studio - 平板电脑模拟器未显示正确的分辨率

    刚刚创建了 Nexus 10 模拟器 但当我启动它时 显示错误的分辨率 当它应该显示为 2560 x 1600 时 它却一直显示为 800 x 1280 有谁知道到底发生了什么以及如何解决这个问题 根据OP的要求 在创建 AVD 的最后一步
  • 无法打开数据库文件

    private void SetConnection string a string Format Data Source 0 Version 3 New False Compress True lodeDb db sql con new
  • 无法解析外部依赖 org.springframework.boot:spring-boot-starter: 因为没有定义存储库

    我有一个多重构建项目 目前正在设置它 每个模块自然都有一个gradle build文件仅包含以下内容 dependencies 在主要build gradle每个模块都需要我想要的文件 但是当我做一个gradle build我收到一条错误消
  • Oracle 10g - 将查询结果写入文件

    我想运行 200 多个选择查询并将结果附加到文件中 所有查询都是相同的 唯一的区别在于日期时间变量 我没有创建例程的权限 这就是我必须创建所有查询的原因 我没有权限创建视图或另一个表来存储结果 我无权访问 PL SQL 现在我需要创建一个报
  • Nuxt,将 Vuex 存储拆分为单独的文件会出现错误:未知突变类型:登录

    我试图将我的 Nuxt Vuex 存储文件拆分为单独的文件 并且没有全部Vuex getters mutations and actions到一个巨大的文件中 这演示项目位于 Github 上 https github com dutchw
  • 欧芹表单验证 - 事件监听器

    好的 所以我已经到处寻找这个 但仍然无法让它工作 似乎没有人尝试过 但我确信它可以做到 我想在我的 Twitter 引导项目中使用 Parsley 验证插件 我已经阅读了文档 但仍在学习 JQuery 所以它超出了我的理解范围 我正在合理化
  • 猫鼬一对多

    你能解释一下如何组织猫鼬模型来创建一对多连接吗 需要单独收藏 假设我有商店和物品 store js var mongoose require mongoose module exports mongoose model Store name
  • Python查找列表中n个连续的数字

    我想知道如何查找列表中的一行中是否存在一定数量的连续数字 例如 例如 如果我正在寻找两个 1 那么 list 1 1 1 4 6 original list list true true 1 4 6 after my function ha
  • lxml cssselect 解析

    我有一个包含以下数据的文档 div class ds list b 1 b A domesticated carnivorous mammal i Canis familiaris i related to the foxes and wo
  • 得到 Y 处的多项式 X? (Python 3.10、NumPy)

    我正在尝试根据 Python 3 10 中以系数降序给出的多项式计算某个 Y 值处的所有可能的实 X 值 我希望将生成的 X 值以list 我尝试过使用roots 的功能numpy图书馆 如答案之一所示这个帖子 https stackove
  • PayPal 自适应付款 - 错误 520009 - 帐户受到限制

    如果这是一个愚蠢的问题 请提前道歉 我确实尝试四处挖掘 但找不到答案 我正在尝试设置链式支付 在沙箱环境中 但收到错误 520009 帐户受到限制 尝试了几个电子邮件地址 它们都给我这个错误 电子邮件地址未在 Paypal 中注册 但据我所
  • 等待ajax响应相同的功能

    我知道类似的问题已经发布过很多次了 但是我读过很多 但找不到我的问题的答案 我有一个等待 ajax 请求响应的函数 很多人会问为什么 好吧 我正在使用一个执行函数的 Wizard Jquery 插件onLeaveAStepFunction当
  • 如何在 GridView 文本框中放置必填字段验证器

    我有一个GridView和一些TemplateField含有的物品TextBox控制 我想在其上添加一个必填字段验证器 这是我的代码
  • 颤动导航栏

    我刚刚开始应用程序开发 正在为导航栏而苦苦挣扎 下面的那个很好 但是上面的那个不好 我想删除按钮上方的灰色空间 你能帮助我吗 Code override Widget build BuildContext context return ne
  • 在 django 中记录格式化程序

    来自Django 文档 https docs djangoproject com en 1 7 topics logging examples 这是日志记录的示例格式 formatters verbose format levelname
  • 公开自托管服务时以编程方式从配置文件中读取 WCF 行为元素

    我的 app config 中有这样的配置
  • Symfony2 计算与另一个实体相关的实体字段

    我有 2 个实体 作者和书籍 1 个作者可能有很多书 我想在表格中显示每个作者有多少本书 每个作者的数量不同 我已经看过了this https stackoverflow com questions 17665271 counting th
  • PHP usort 不会对类进行排序

    这是要排序的元素数组的示例 items array 0 gt object stdClass 8 public id gt string 110 length 3 public brand id gt string 18 length 2