Php 已删除数组分组键
数据分组后是否可以删除密钥?现在我正在使用csv文件导入功能。我有两行相同学生但不同书籍的数据,因为我想根据学生ID对书籍进行分组 代码 这是我的分组功能,它工作正常,但数据结构与我的系统不匹配 结果就在这里Php 已删除数组分组键,php,arrays,sorting,Php,Arrays,Sorting,数据分组后是否可以删除密钥?现在我正在使用csv文件导入功能。我有两行相同学生但不同书籍的数据,因为我想根据学生ID对书籍进行分组 代码 这是我的分组功能,它工作正常,但数据结构与我的系统不匹配 结果就在这里 array:1 [ "ST001" => array:9 [ "student_id" => "ST001" "name" => "joe" "books" => array:2 [ 0 => array:2 [
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"
]
]
]
]
预期结果
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"
]
]
]
我不知道如何删除
St001
数组。我确实尝试了这个$groupu by[]=array(
),但是书籍
数据将从数据结构中分离出来。将内部数组分配给另一个数组
$array = $array['ST001'];
这会有帮助的
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'];
}
// remove key and get only value as you want
print_r(array_values($group_by));
如果我不理解你的问题,我认为你的代码是正确的。因为如果你有例如ST002,你可以将两个数据收集到一个数组中,比如$group\U by['ST001']=>array with data$group\U by['ST002']=>array with data.Hm,
$group\U by[$item['student\U id']]
你在这里设置了它,你不再需要它了吗?@Sfili_81是的……代码按预期工作。我只是想找到一种方法来删除该键,以便与我的系统匹配。@kerbholz更正如果你删除了它,如果你有多个学生id会怎么样?
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'];
}
// remove key and get only value as you want
print_r(array_values($group_by));