PHP按名称对数组进行排序

麦克风

从我的数据库返回的数据已加密。因此在SQL末尾运行订单无法正常工作。所以我必须在服务器端进行排序。

我对此提出了很多问题,我尝试了一个建议,但我似乎无法解决。我想这个程序这一个(看起来像最近我一直在寻找的)。

2件事正在发生:

1:不按名称字段(键)排序

2:我们的内部应用程序抱怨说它不再是JSON字符串。

我需要对我的名字进行排序,所以我需要自定义排序

我得到这样的数组集:

$jsonData = array();

...connected to the DB.... stuff here...
//loop through the return:

if($result->num_rows > 0)
     {
        while($row = $result->fetch_assoc())
         {
               $row["name"] = $this->decryptData($row["name"]);
              $jsonData["groups"][] = $row ;

         }   

}


    $result->close();   
    mysqli_close($mysqli);
    return $jsonData;

返回代码如下所示:

{
  "groups": [
    {
      "id": "71",
      "name": "Bob",
       },
    {
      "id": "73",
      "name": "Howard",
    },
    {
      "id": "79",
      "name": "Sam",

    },....
  ....{
      "id": "65",
      "name": "Al",

    }
  ]
}

好的,因此我在例程的底部添加了以下代码进行排序(注意,我尝试使用方法):

.... 代码

        /*usort($jsonData, function($a, $b) {
           return $a['name'] - $b['name'];
        });*/

         usort($jsonData, function($a, $b) {
         return strcasecmp($a['name'], $b['name']);
         });

    /* and I tried this get the same output but with a php error say what I have is not a array
        array_multisort($jsonData['name']);
          -- and this--
        array_multisort($jsonData['groups']['name']);

   */



$result->close();   
        mysqli_close($mysqli);
        return $jsonData;

我得到的结果与我需要的结果几乎没有什么不同,并且没有按名称排序:

[
   [
        {
          "id": "71",
          "name": "Bob",
           },
        {
          "id": "73",
          "name": "Howard",
        },
        {
          "id": "79",
          "name": "Sam",

        },....
      ....{
          "id": "65",
          "name": "Al",

        }
      ]
]

我现在迷路了。

杰克

您不能将算术应用于字符串值进行比较;您需要一个字符串函数,例如strcmp()strcasecmp(),该函数返回值-1、0或1:

usort($jsonData, function($a, $b) {
    return strcasecmp($a['name'], $b['name']);
});

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

在PHP中按名称对数组进行排序

来自分类Dev

PHP按数字名称对数组排序

来自分类Dev

按名称对数组中的数组进行排序

来自分类Dev

PHP排序按值ASC对数组项进行排序?

来自分类Dev

如何从PHP中的Key按升序对数组进行排序?

来自分类Dev

PHP中按日期对数组进行排序

来自分类Dev

按数组元素对数组进行排序

来自分类Dev

按费用和名称对数组排序

来自分类Dev

laravel按日期对数组进行排序

来自分类Dev

按日期对数组元素进行排序

来自分类Dev

Python按模板对数组进行排序

来自分类Dev

按特定顺序对数组进行排序

来自分类Dev

按相应范围对数组进行排序

来自分类Dev

按数值对数组进行排序

来自分类Dev

按孩子的孩子对数组进行排序

来自分类Dev

按定义的顺序对数组进行排序

来自分类Dev

如何按“包含”对数组进行排序?

来自分类Dev

按严重程度对数组进行排序

来自分类Dev

按字母值对数组进行排序

来自分类Dev

如何按多维数组的名称而不是值对数组进行排序?

来自分类Dev

PHP:按项目元(数组内的数组)对数组(woocommerce项目)进行排序

来自分类Dev

PHP:按字母顺序对数组排序

来自分类Dev

PHP:按值长度对数组排序

来自分类Dev

PHP:按爆炸值对数组排序

来自分类Dev

PHP:按字母顺序对数组排序

来自分类Dev

PHP按第3层的子数组值对数组进行排序,但带有索引

来自分类Dev

PHP - 按子数组中的值对数组进行排序 - DESC 和 ASC

来自分类Dev

使用排序功能按NSDates对数组进行排序

来自分类Dev

JavaScript与PHP对数组进行排序