查询以按字段内容分组 引用

问题描述

我需要帮助进行查询以按字段内容分组。我有以下数据库

+----+--------------+-----------------+------------------------------+
| id | depart_kode  |    depart_task  |            value             |
+----+--------------+-----------------+------------------------------+
| 1  |     001      |  Create Profil  |  Some Value                  |
| 2  |     001.12   |  Create Profil  |  Some Value                  |
| 3  |     001.452  |  Create Profil  |  Some Value                  |
| 4  |     002.914  |  Create Profil  |  Some Value                  |
| 5  |     002      |  Create Profil  |  Some Value                  |  
| 6  |     003      |  Create Profil  |  Some Value                  |
+----+--------------+-----------------+------------------------------+

我需要进行查询,在其中我按depart_kode分组,并且应该以json格式按这样的前3位数字进行打印

  "001":[
    {
    "depart_kode":"001,and other 
    },{
   "depart_kode":"001.12"
    },],"002":[
    {
     "depart_kode":"002"
    }
]

类似的东西,最重要的是,它们将基于前3个数字(如001)分组在一个数组中。 和json只是一个例子,我想根据前3位数字将其拆分为一个数组

解决方法

像这样吗?

$departs = [];
foreach ($sqlRows as $row) {
    $departKey = substr($row['depart_kode'],3);
    
    if (!array_key_exists($departKey,$departs)) {
        $departs[$departKey] = [];
    }
    
    $departs[$departKey][] = $row['depart_kode'];
}

工作example

引用

  • substr-获取字符串的特定部分(在我们的示例中为前3个字符)
  • array_key_exists-检查数组中的键是否存在