从数组分组值

时间:2020-09-21 11:24:37

标签: php arrays

早上好! 我有以下数组

array (size=3)
  0 => 
    object(stdClass)[6]
      public 'id' => int 1
      public 'disciplina_id' => int 3
      public 'nota' => int 4
  1 => 
    object(stdClass)[21]
      public 'id' => int 2
      public 'disciplina_id' => int 1
      public 'nota' => int 8
  2 => 
    object(stdClass)[24]
      public 'id' => int 3
      public 'disciplina_id' => int 3
      public 'nota' => int 9

我想在“ discipline_id”列中“添加”具有相同值的项目 由于课程可以包含1个或N个注释,因此每当添加字段时,都会创建一个notaX字段以包含新注释。例如:note,note1,note2,note3 ...

我该怎么做?老实说,我很卷曲,我考虑过使用方法(array_map,filter),但是在这个问题上我已经损失了超过2天。

有人可以向我解释逻辑吗?

1 个答案:

答案 0 :(得分:0)

这是SQL查询的简单问题-如果可以,请按列分组-尝试更改它。 在PHP中,我将使用make数组,将其纪律ID和nota => nota值数组的值作为键。喜欢:

SELECT * 
  FROM items
     , inputs
 WHERE inputs.item = items.item_id
   AND inputs.spec='color' 
   AND inputs.input_value = 'red'
   AND inputs.spec = 'size' 
   AND inputs.input_value='38'

当您使用json_decode()时,可以添加标志并获取数组而不是对象

$result = [];
        
for ($i=0; $i < count($data); $i++) {
    $disciplina_id = $data[$i]['disciplina_id'];
    $result[$disciplina_id][] = $data[$i]['nota'];     
}
相关问题