php - 在 PHP 中为数组的每个元素添加键和值
问题描述
我一直在尝试做一件简单的事情,我想为数组的每个索引添加一个键和值,即我有一个这样的数组
[0] => Array
(
[student_id] => 1
[class_id] => 1
[student_grno] => 11198
[student_name] => Iqra Gabol
[father_name] => Umer Ishaq Gabol
[student_email] => iqra.gabol11198@habibschools.edu.pk
[father_email] =>
)
[1] => Array
(
[student_id] => 2
[class_id] => 1
[student_grno] => 11199
[student_name] => Ayehsa Mughal
[father_name] => Zahid Iqbal Mughal
[student_email] => ayesha.mughal11199@habibschools.edu.pk
[father_email] => zim2love@hotmail.com
)
[2] => Array
(
[student_id] => 3
[class_id] => 1
[student_grno] => 11202
[student_name] => Eisha Fahim
[father_name] => Fahim Ahmed
[student_email] => eisha.fahim11202@habibschools.edu.pk
[father_email] => fahimeisha@gmail.com
)
[3] => Array
(
[student_id] => 4
[class_id] => 1
[student_grno] => 11204
[student_name] => Shaanzeh Lodhi
[father_name] => Sufyan Lodhi
[student_email] => shaanzeh.lodhi11204@habibschools.edu.pk
[father_email] => sufyan.lodhi@gmail.com
)
[4] => Array
(
[student_id] => 5
[class_id] => 1
[student_grno] => 11205
[student_name] => Unaiza Hussain Syed
[father_name] => Syed Mustafa Hussain
[student_email] => unaiza.hussain11205@habibschools.edu.pk
[father_email] => syeda.mustafa.hussain@pk.pwc.com
)
)
foreach 元素我想为每个学生获得分数并想像这样添加到他们
[0] => Array
(
[student_id] => 1
[class_id] => 1
[student_grno] => 11198
[student_name] => Iqra Gabol
[father_name] => Umer Ishaq Gabol
[student_email] => iqra.gabol11198@habibschools.edu.pk
[father_email] =>
[mark_id] => 7
)
[1] => Array
(
[student_id] => 2
[class_id] => 1
[student_grno] => 11199
[student_name] => Ayehsa Mughal
[father_name] => Zahid Iqbal Mughal
[student_email] => ayesha.mughal11199@habibschools.edu.pk
[father_email] => zim2love@hotmail.com
[mark_id] =>7
)
[2] => Array
(
[student_id] => 3
[class_id] => 1
[student_grno] => 11202
[student_name] => Eisha Fahim
[father_name] => Fahim Ahmed
[student_email] => eisha.fahim11202@habibschools.edu.pk
[father_email] => fahimeisha@gmail.com
[mark_id] => 2
)
[3] => Array
(
[student_id] => 4
[class_id] => 1
[student_grno] => 11204
[student_name] => Shaanzeh Lodhi
[father_name] => Sufyan Lodhi
[student_email] => shaanzeh.lodhi11204@habibschools.edu.pk
[father_email] => sufyan.lodhi@gmail.com
[mark_id] => 12
)
[4] => Array
(
[student_id] => 5
[class_id] => 1
[student_grno] => 11205
[student_name] => Unaiza Hussain Syed
[father_name] => Syed Mustafa Hussain
[student_email] => unaiza.hussain11205@habibschools.edu.pk
[father_email] => syeda.mustafa.hussain@pk.pwc.com
[mark_id] => 2
)
)
mark_id 在循环中动态出现。
我使用了以下代码,但它只给了我最后一条记录。
foreach($arr as $key => &$val){
$val['mark_id'] = get_marks_id();
}
请帮忙。非常感谢
解决方案
你能详细说明一下这个问题吗?我尝试了您的代码,它对我来说非常有效。这是我运行的代码:
function get_marks_id() {
return rand(1,10);
}
$arr = [
[
'student_id' => 1,
'class_id' => 1,
'student_grno' => 11198,
'student_name' => 'Iqra Gabol',
'father_name' => 'Umer Ishaq Gabol',
'student_email' => 'iqra.gabol11198@habibschools.edu.pk',
'father_email' => '',
],
[
'student_id' => 2,
'class_id' => 1,
'student_grno' => 11199,
'student_name' => 'Ayehsa Mughal',
'father_name' => 'Zahid Iqbal Mughal',
'student_email' => 'ayesha.mughal11199@habibschools.edu.pk',
'father_email' => 'zim2love@hotmail.com',
],
[
'student_id' => 3,
'class_id' => 1,
'student_grno' => 11202,
'student_name' => 'Eisha Fahim',
'father_name' => 'Fahim Ahmed',
'student_email' => 'eisha.fahim11202@habibschools.edu.pk',
'father_email' => 'fahimeisha@gmail.com',
],
];
foreach($arr as $key => &$val){
$val['mark_id'] = get_marks_id();
}
echo print_r($arr,1);
这打印:
Array
(
[0] => Array
(
[student_id] => 1
[class_id] => 1
[student_grno] => 11198
[student_name] => Iqra Gabol
[father_name] => Umer Ishaq Gabol
[student_email] => iqra.gabol11198@habibschools.edu.pk
[father_email] =>
[mark_id] => 10
)
[1] => Array
(
[student_id] => 2
[class_id] => 1
[student_grno] => 11199
[student_name] => Ayehsa Mughal
[father_name] => Zahid Iqbal Mughal
[student_email] => ayesha.mughal11199@habibschools.edu.pk
[father_email] => zim2love@hotmail.com
[mark_id] => 1
)
[2] => Array
(
[student_id] => 3
[class_id] => 1
[student_grno] => 11202
[student_name] => Eisha Fahim
[father_name] => Fahim Ahmed
[student_email] => eisha.fahim11202@habibschools.edu.pk
[father_email] => fahimeisha@gmail.com
[mark_id] => 8
)
)
您的 get_marks_id() 函数可能有问题吗?
推荐阅读
- html - css 显示 flex 和换行
- c# - 基于datagrid c# wpf中的列从datagrid视图中禁用按钮
- html - 试图在引导程序 4 中居中弹性部分
- android - RecyclerView 会不定期更新
- angular - Angular 6显示应用程序引导的进度
- android - WINDOWS:不推荐使用“android”命令
- android-studio - 找不到项目所需的 com.project.expoview:26.0.0:Android Studio 中的应用程序?
- python - Pycharm:安装包后未解决的引用
- awk - 使用 awk 拆分列
- android - @inject 接口不是 dagger2 android 中的实现