Removed array grouped key

Is it possible to remove the key after data is grouped? Now I’m working with the csv file import function. I have two rows of data with the same student but different books because I want to group the books based on the student ID.

Code

foreach ($book as $item) {
	$item['books'] = [
			'number' => $item['number'],
			'description' => $item['description'],
			];

	if (!isset($group_by[$item['student_id']])) {
							$group_by[$item['student_id']] = array(
								'student_id' => $item['student_id'],
								'name' => $item['name'],
			
							);
						}

	$group_by[$item['student_id']]['books'][] = $item['books'];

}

This is my grouping function, it worked perfectly as expected but the data structure is not matched to my system

Result is here

array:1 [
  "ST001" => array:9 [
    "student_id" => "ST001"
    "name" => "joe"
    "books" => array:2 [
      0 => array:2 [
        "number" => "1"
        "description" => "The magic"
      ]
      1 => array:2 [
        "number" => "2"
        "description" => "Forest in norway"
      ]
    ]
  ]
]

Expect result

array:9 [
    "student_id" => "ST001"
    "name" => "joe"
    "books" => array:2 [
      0 => array:2 [
        "number" => "1"
        "description" => "The magic"
      ]
      1 => array:2 [
        "number" => "2"
        "description" => "Forest in norway"
      ]
    ]
  ]

I have no idea how to remove the St001 array. I did tried this $group_by[] = array( but the books data will be break out of data structure.

What should happen when there are multiple students?

The system should group up the books if there have the same student IDs. Others student with different ID will import to the system directly without grouping.

So what would the output be with multiple students?

This topic was automatically closed 91 days after the last reply. New replies are no longer allowed.