PHP:如何排序和维护密钥?

Posted

技术标签:

【中文标题】PHP:如何排序和维护密钥?【英文标题】:PHP: how to usort and maintain keys? 【发布时间】:2015-05-23 06:48:46 【问题描述】:

我有以下数组(JSON 化以便于查看):


  "23": 
    "price": "33.99"
  ,
  "38": 
    "price": "30.86"
  ,
  "51": 
    "price": "31.49"
  

我想按 price 键对其进行排序,但我希望结果也返回包含价格的元素的键,所以像这样:


  "38": 
    "price": "30.86"
  ,
  "51": 
    "price": "31.49"
  ,
  "23": 
    "price": "33.99"
  

我的usort 回调是这样的:

private function _price_sort($a, $b)

    if ($a['price'] == $b['price']) 
        return 0;
    
    return ($a['price'] < $b['price']) ? -1 : 1;

...以正确的顺序返回数组,但没有元素容器:

[
  
    "price": "30.86"
  ,
  
    "price": "31.49"
  ,
  
    "price": "33.99"
  
]

我需要在回调函数中或在 usort 中做些什么来保留键吗?

【问题讨论】:

改用uasort() 【参考方案1】:

使用uasort() 维护您的密钥

此函数使用用户定义的比较函数对数组进行排序,以使数组索引与其关联的数组元素保持相关性。

【讨论】:

哇!我在usort 中尝试解决这个问题。谢谢! @***Newbie 这回答了你的问题吗? :) @***Newbie 是的,您可以接受答案!

以上是关于PHP:如何排序和维护密钥?的主要内容,如果未能解决你的问题,请参考以下文章

如何在同一系统中维护多个具有多个 ssh 密钥的 bitbucket 帐户

我如何使用 php 生成 AES-256 对称密钥

如何对firebase自动生成的密钥进行排序?

在 PHP 中加密和解密许可证密钥

如何在 PHP 中没有硬编码密钥的情况下进行对称加密

如何根据密钥对 Firebase 控制台中的节点进行排序