如何在内部阵列
问题描述:
在我的关系数据库
FOREACH,如何在内部阵列
如果id_sub_bidang = 1,则nama_sub_bidang “前端deveoper”。
如果id_sub_bidang = 2那么nama_sub_bidang “资深营销”
我的代码
$data = Company::find($id);
$result_data = array();
foreach ($data->posting_job as $hasil) {
foreach ($data->sub_bidang as $value) {
$result_data[] = [
'id_sub_bidang' => $hasil->id_sub_bidang,
'nama_sub_bidang' => $value->nama
];
}
}
return response()->json($result_data);
输出
[
{
"id_sub_bidang": 1,
"nama_sub_bidang": "Frontend Developer"
},
{
"id_sub_bidang": 1,
"nama_sub_bidang": "Senior Marketing"
},
{
"id_sub_bidang": 2,
"nama_sub_bidang": "Frontend Developer"
},
{
"id_sub_bidang": 2,
"nama_sub_bidang": "Senior Marketing"
}
]
预期的结果
[
{
"id_sub_bidang": 1,
"nama_sub_bidang": "Frontend Developer"
},
{
"id_sub_bidang": 2,
"nama_sub_bidang": "Senior Marketing"
}
]
我想循环内部数组,但没有工作。所以,我用这种方式。 有什么问题?
答
更改您的foreach循环到这一点:
foreach ($data->posting_job as $hasil) {
foreach ($hasil->id_sub_bidang as $hasilid) {
$result_data[] = ['id_sub_bidang' => $hasil->id_sub_bidang];
foreach ($data->sub_bidang as $value) {
$result_data[] = ['nama_sub_bidang' => $value->nama];
}
}
}
+0
为foreach提供的参数无效() 此代码** foreach($ hasil-> id_sub_bidang as $ hasilid)** – bamsarts
答
建立一个数组,然后使用递归的方法来清洁通过重复条目的阵列。
另一种解决方案
$empty_stats = Array(
'id_sub_bidang' => null,
'nama_sub_bidang' => null
);
foreach ($array as $value) {
if (!array_key_exists($id_sub_bidang, $array)) {
$array[] = $empty_stats;
}
$array[] = [
'id_sub_bidang' => $hasil->id_sub_bidang,
'nama_sub_bidang' => $value->nama
];
}
分享您'$ data'? – C2486
你的预期结果是什么? – martiendt
@martiendt对不起,已添加:) – bamsarts