[英]Array is not give proper output for foreach loop
我不确定这些问题是什么意思,所以任何建议将不胜感激。
foreach ($workerdata as $key => $value) {
$eductions = WorkerCategories::select('Worker_type')->where('Workertype_id','=',$value)->first();
$worker = $eductions->Worker_type;
$demo = array($worker);
print_r($demo);
$users['worker_category'] = $demo;
}
exit();
输出:
Array
(
[0] => Apartment Prepping
)
Array
(
[0] => Carpenter
)
我想要:
Array
(
[0] => Apartment Prepping
)
Array
(
[1] => Carpenter
)
这次真是万分感谢。
每次调用array($worker)
,都会创建一个与之前无关的新数组,这就是索引保持0
:
foreach ($workerdata as $key => $value) {
$eductions = WorkerCategories::select('Worker_type')->where('Workertype_id','=',$value)->first();
$users['worker_category'][] = $eductions->Worker_type; //push to array worker type.
}
exit();
print_r($users['worker_category']);
Array
(
[0] => Apartment Prepping
[1] => Carpenter
)
在你的 foreach 循环数组中($worker); 每次迭代都会创建一个新数组,因此您会得到 [0] 索引数组。
为了解决这个问题,您必须手动设置索引值。 请参阅波纹管代码。
$index=0;
foreach ($workerdata as $key => $value) {
$eductions = WorkerCategories::select('Worker_type')->where('Workertype_id','=',$value)->first();
$worker = $eductions->Worker_type;
$demo = array($index++ => $worker);
print_r($demo);
$users['worker_category'] = $demo;
}
exit();
输出:
Array
(
[0] => Apartment Prepping
)
Array
(
[1] => Carpenter
)
我们应该在这里做的第一件事是
$workerdata = array_values($workerdata);
这样,我们就不需要多次打数据库了。 只需查询我们拥有的所有工作人员 ID
$eductions = WorkerCategories::select(['Worker_type'])->whereIn('Workertype_id',$workerdata)->get();
定义一个空数组来存储您的值
$user = [];
然后遍历你的结果
foreach($eductions as $eduction){
$user[] = $education->worker_category;
}
print_r($user);
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.